基础组件
所有的控件都可以在java代码中创建出来,并且大部分的属性都对应set与get方法
比如View view= new View(Context context)
context是上下文,是Activity父类一般传入当前Activity!
EditText
EditText 是程序用于和用户进行交互的另一个重要控件,它允许用户在控件里输入和编
辑内容,并可以在程序中对这些内容进行处理。
EditText继承于TextView,拥有TextView中所有的属性和方法,一般用来提供给用户进行文字,密码等
输入操作
注:EditText大部分属性都属于TextView,但在TextView上设置没有效果
常用属性
android:capitalize设置英文字母大写类型:
//sentences 仅第一个字母大写
//words 每一个单词首字母大小,用空格区分单词
//characters 每一个英文单词都大写,在模拟器上用pc键盘输入有效,使用软键盘无效
android:digits 设置允许输入哪些字符。“如1234567890.±*/%\n()”
android:editable 设置允许编辑。仍然可以获取光标,但无法继续输入
android:hint Text为空时显示文字提示信息,可通过textColorHint设置提示信息的颜色
android:imaOptions 设置软键盘的Enter键。可用“|”设置多个,有如下可设置:
//normal 默认,换行
//actionGo 软键盘下方变成“前往”,“去往”,“Go”输入法不同,显示内容不同
//actionSearch 键盘下方“搜索”变放大镜
//actionSend 键盘下变成“发送”
//actionNext 软键盘下面变成“下一个”
//actionDone 软件盘变成“完成”,点击光标在原来的输入框上,但软键盘关闭
android:inputType 设置文本的类型,用于帮助输入法显示合适的键盘类型。
android:maxLength 限制输入的字符数。如果设置5,那么仅可以输入5个汉字,数字,英文字母。
监听事件
EditText 作为用户输入组件,使用频率非常高
当文字的改变,修改Enter键后,我们都要处理
Enter监听事件
EditText etDone = (EditText) findViewById(R.id.etDone);
//设置Enter按键处理事件
etDone.setOnEditorActionListener(new OnEditorActionListener() {
@Override
public boolean onEditorAction(TextView v, int actionId, KeyEvent event) {
//处理
//actionId 当前事件组件的资源ID,用来区分多个EditText用同一个监听器
//event 事件源,封装了当前操作动作
return false;
}
});
文字改变监听
EditText etDone = (EditText) findViewById(R.id.etDone);
//添加一个文字改变时监听
etDone.addTextChangedListener(new TextWatcher() {
@Override
public void onTextChanged(CharSequence s, int start, int before, int cou
nt) {
//文字改变时 回调此方法
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
//文字改变之前
}
@Override
public void afterTextChanged(Editable s) {
//文字改变之后
}
});
RadioGroup与RadioButton单选按钮
-
RadioButton是Button的子类,可以直接用Button的所有属性。如果多个按钮同时被选中一个,需要同时放在RadioGroup组中
-
RadioGroup是linearLayout的子类,默认从上到下排列子元素,如果需要改变纵向,需要设置Android:orientation为horizontal
RadioButton与RadioGroup的关系:
RadioButton表示单个圆形单选框,而RadioGroup是可以容纳多个RadioButton的容器
每个RadioGroup中的RadioButton同时只能有一个被选中
不同的RadioGroup中的RadioButton互不相干
一个RadioGroup中至少有2个RadioButton
一个RadioGroup中的RadioButton默认会有一个被选中,建议放在RadioGroup中的起始位置
RadioGroup常用属性
android:checkedButton 值为数字,这是子单选按钮 应该在默认的情况下 此单选组中的id
监听事件
当RadioGroup中的选中项变更后,我们常常需要处理其他视图,
比如,性别变更成“女”后,我们可能需要显示符合该性别的头像列表进行更新。
RadioGroup的子控件改变监听位于android.widget.RadioGroup.OnCheckedChangeListener
radioButton.setOnCheckedChangeListener(new
CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//其中实现方法中的isChecked代表当前GroupButton的选中状态
//当一个组中的按钮选中改变时,会先调用当前选中的监听方法,传入true
//接着会调用前一个被选中的按钮,传入false。
}
});
CheckBox 多选按钮
CheckBox和Button一样,也是一种古老的控件,它的优点在于,不用用户去填写具体的信息,只需轻轻
点击,缺点在于只有“是”和“否”两种情况,但我们往往利用它的这个特性,来获取用户的一些信
息。如一个身份表单中,常常让用户填写“是否已经结婚”,显然让用户去填写“是”或“否”是不合
理的
CheckBox与RadioButton的监听事件相同,都是
android.widget.CompoundButton.OnCheckedChangeListener
DatePicker&TimePicker
在Android程序中,我们通常需要使用DatePicker来设置日期,TimePicker来设置时间。其基本步骤是:
先定义DatePicker和TimePicker布局然后通过Calendar类获取系统时间
接着通过init方法将日期传递给DatePicker初始化日期控件,在响应点击事件中可以通过DatePicker的
getYear();getDayOfMonth();getMonth()函数获取具体日期,同时可以在OnDateChangedListener
事件中监听日期变化,设置事件函数同理。
与君共勉
我要一步一步往上爬
在最高点乘着叶片往前飞
任风吹干流过的泪和汗
我要一步一步往上爬
等待阳光静静看着它的脸
小小的天有大大的梦想
我有属于我的天
任风吹干流过的泪和汗
总有一天我有属于我的天