View监听事件
- View的事件是所有的视图组件都支持的。
- OnClickListener
- OnLongClickListener false:继续执行其他事件 true:事件到此为止
- 每一个对应的监听器,都是指,在特定的事件中,才会去触发,比如点击事件,必须要点击组件
,才会触发监听器中的方法。用户与app交互的唯一途径。 - enabled: 是否可以使用的组件,如果为false,说明不接受任何的用户事件
EditText 输入框,用于接受用户的文字信息
1. EditText 继承于 TextView
2.
3.
4. digits: 只允许输入的属性
5. inputType: 输入的类型 数字型(自动弹出数字键盘),密码类型(隐藏输入的内容)
6.
7. hint: 提示
8. textColorHint :提示字体颜色
9.
10. imeOptions : 设置回车键的样式(测试阶段在去处理)
11.
12. maxLength : 最大的字符个数
监听器
1. OnEditorActionListener : 按下回车键的时候执行该监听器。
2. TextChangedListener : 当文本内容改变的时候执行该监听器
3. OnFocusChangeListener : 焦点改变时的监听
4.
5.
6. EditText一般不要设置点击事件,内部已经做了点击处理,如果自己又做了点击事件,需要点击
两次。
监听器中有两种模式
1. setOnXXXListener 监听器只能存在一个,一旦从新设置,前面一个就无效了
2. addXXX() 可以同时存在多个监听器,一旦事件产生,所有监听器都会同时
需响应
获取焦点
- xml: 在EditText标签中加入标签
- java:用EditText的实例去调用requestFocus()方法
RadioButton
1. Object
2. -View
3. -TextView
4. -Button
5. -CompoundButton 可以被选中的Button的父类
6. -RadioButton
7. -CheckBox
8. -Toggle
9. -Switch
RadioButton一定需要分组,界面上有可能出现多组RadioButton,使用RadioGroup
RadioGroup是一个布局,继承于LinearLayout.默认垂直排列,可以修改orientation来改变布
局
1. xml : android:checked 默认是否被选中 不要使用 有Bug
2. java : isCheck() setCheck() 使用java代码来做默认值,没有bug
监听事件
1. RadioButton.setOnCheckedChangeListener();
2. CompoundButton.OnCheckChangeListener:
3. public void onCheckedChanged(CompoundButton 状态改变的button,
boolean 是否被选中)
4.
5.
6. 一般开发中 使用下面这种模式
7. RadioGroup.setOnCheckedChangeListener();
8. RadioGroup.OnCheckChangeListener:
9. public void onCheckedChanged(RadioGroup 状态改变的组, int 被选中的Butt
onId号)
CheckBox
和RadioButton相同,区别在于是多选按钮,同时可以多个被选中,每一个组件都有true和
false两种check状态
1. android:checked
1. 一般使用CompoundButton的OnCheckedChangeListener
1. xml中使用@null来将背景或者button按钮图片取消
动态代码创建
1. 1.所有的xml中的组件都可以使用构造方法来创建。
2. 2.setContentView(View view)
3. 3.可以使用LayoutInflate来加载xml文件
1. 如果需要设置布局属性,必须使用LayoutParams
2. 每一个布局都会有一个对应的LayoutParams的内部类
1. ViewGroup.LayoutParams
2. layout_width
3. layout_height
4.
5. ViewGroup.MargeLayoutParams
6. layout_leftMarge
7. layout_rightMarge
8. ...
9.
10. LinearLayout.LayoutParams
11. layout_gravity
12. layout_weight
13.
14. RelativeLayout.LayoutParams
15. 15个方法都位于类中
16.
1. 1. 比较简单的布局可以使用动态代码
2. 2. 重复率比较高的布局
3. 3. 不确定的布局