认真读完这800字,你可以学会开发下面这个App:猜谜语,答对了,出表情包。
今天,我先讲一下控件的监听器 Listener ,然后重点说一下输入框 EditText 的使用。
交通违章的摄像头,你一压线,它就拍上了。判定原理可能不一样,有的是先拍照再检测,也有的是检测到你违章了才拍。不管怎样,只要有了这个行为,它总能通过各种方法知道。
这可以叫监听器,它总是盯着一件事情。
同样,我们也可以给App中的各种控件,比如按钮,配备一个监听器。
一旦按钮被按下,监听器就能收到消息,然后,再去做一些可以描述的事情。
Android中支持用户输入的控件叫 EditText ,来看一下它在 xml 中的定义:
其中有个 inputType 属性,那是输入类型,可以对输入进行过滤,就像是 html 中 input 标签的 type 属性。
一旦设置了,比如 number 属性,那么弹出来的键盘只有数字,你输不了别的玩意儿。
除此之外, EditText 还拥有一个监听器,叫 TextChangedListener ,用于监听输入内容的变化。
editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { // 文本变化之前,s:变化前的文本 } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { // 文本变化之后,s:改变后的文本 } @Override public void afterTextChanged(Editable s) { // 文本变化之后,s:变化后的文本 }这个监听器会关注输入框内容的变化,它会详细记录变化之前,变化之中,变化之后,哪里变化了,由什么变为什么,这些都会在对应方法里返回数据,如上代码注释所描述。
要做的是猜谜语的小功能:
还是使用新建的项目, layout 文件夹下的 xml 管视图, java 文件下的 Activity 管逻辑。
这次还多了一个图片,稍微学习一下这个控件。
需要借机引入的是,Android的图片资源放在 res 目录下的 mipmap 文件里。
所以,你要把表情包图片 ok.png 复制到 mipmap 下,让 srcCompat="@mipmap/ok" 引用。
总体的 activity_main.xml 布局是这样的:
<?xml version="1.0" encoding="utf-8"?> 控制逻辑的 MainActivity.java 是这样的:
public class MainActivity extends AppCompatActivity { ImageView imageView; EditText editText; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView = findViewById(R.id.imageView); imageView.setVisibility(View.GONE); editText = findViewById(R.id.editText); editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { if (s.toString().contains("rain")){ imageView.setVisibility(View.VISIBLE); } } }); } }这段代码简单到我无话可说。
最后,点击顶部的Run图标,选择模拟器,程序就跑起来了。
欢迎点赞,评论+转发!!!
| 留言与评论(共有 0 条评论) “” |