第八章 探索用户界面屏幕元素
8.1Android视图简介
8.1.1Android视图简介
sdk中有一个android.view包
View类是Android界面的构建组块,几乎是所有用户的空间和布局的基类。
8.1.2Android空间简介
sdk中的android.widget包中。
几乎所有的控件基类都是这个类
每个空间有唯一的饿一个android:id 标示符
获取标示符的方法 fingViewById(ID),将返回值转换为要使用的控件。
8.1.3Android布局
布局是android.widget类中特殊的控件,它是其他控件的父容器。
8.2使用TextView显示文本
TextView继承自View类,包含在android.widget包中。
8.2.1配置布局和尺寸
TextView的宽度 由ems来进行指定
TextView的高度 由文本的行数进行设定
8.2.2文本中使用链接
使用autoLink属性 设置 电话 mail 和web。。。。
8.3使用EditText获取数据
8.3.1使用EditText控件获取用户的输入数据
hInt属性显示输入前 的提示文本
可以使用getText()方法来获取文本。
8.3.2使用输入过滤器约束用户输入
使用setFilters(InfutFilter对象)
new InputFilter[]{}
由两种属性,将所有字母转换为大写,限制长度为2.
8.4使用自动补全辅助用户
1. 使用AutoCompleteTextView控件
想创建一个选项数组
String[]
创建一个适配器存储数组
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_dropdown_item_1line, COLORS);
android.R.layout.simple_dropdown_item_1line, COLORS);
使用控件 setAdapter();
该控件的completonThreshold属性 设置输入第几个字符自动提示
2.使用MultiAutoCompleteTextView控件
最后添加一步setTokenizer(new MultiCompleteTextView.CommaTokenizer());
选择选项后自动补全“ ,”
8.5使用Spinner控件为用户提供可选输入
设置Spinner的entries属性 为要显示的对象数组
获取选择的文字时,Spinner是一个TextView列表
需要使用getSelectedView().getText();
8.6使用按钮,多选框和单选组完成简单的用户选择
8.6.1使用基本的按钮
基本按钮控件Button
设置点击监听
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "button", Toast.LENGTH_LONG).show();
//Toast.makeText(ButtonsActivity.this, "Button clicked", Toast.LENGTH_SHORT).show();
}
});
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
Toast.makeText(MainActivity.this, "button", Toast.LENGTH_LONG).show();
//Toast.makeText(ButtonsActivity.this, "Button clicked", Toast.LENGTH_SHORT).show();
}
});
8.6.2使用CheckBox 和 ToggleButton控件
CheckBox即是TextView 又是Button
可以通过 button.isChecked()判断是否被单击
又可以通过view.setText()设置文本。
ToggleButton 点击后自动切换标题
Switch滑块按钮
8.6.3使用RadioGroup和RadioButton
一个RadioGroup通常包括一组RadioButton
清楚所有选项的方法 (RadioGroup)group.clearChecked();
获取选择项内容的方法
(RadioGroup)group.setOnCheckedChangeListener
第二个参数为点击项的id
使用RadioButton button = (RadioButton)findViewById(id);
button.getText();
8.7获取用户输入的日期和时间
日期的控件DatePicker
日期改变的监听的函数 date.init(年, 实际月数 - 1, 日, DataPicker.onDataChangedListener())
获得的年数应该减去1900为实际数
时间的控件TimePicker
监听函数 time.setOnTimeChangedListener(TimePicker.onTimeChangedListener());
8.8 使用指示器向用户显示数据
8.8.1使用ProgressBar显示进度
分两种 一种是模糊显示 没有进度 只有动画
一种是水平进度条 能够设置进度
设置进度函数 bar.setProgress();
在标题栏中显示进度条 需要在setContentView之前使用 requestWindowFeature(Window 两种进度条)
在SetContentView之后使用setProgress()设置进度 进度范围为(0~10000);
8.8.2使用SeekBar调整进度
使用SeekBar控件
监听移动事件 setOnSeekBarChangeListener()
设置 背景的进度 setSecondaryProgress 第二个参数为移动值 ,第三个参数告述我们由用户还是程序改动的值
8.8.3使用RatingBar显示评分数据
使用RatingBar控件
步长只能为0.25
监听函数和上面类似
注意:监听函数是在用户手中松开的时候调用
8.8.4使用Chronometer显示时间推移
初始化setBase函数 参数设置为elapsedRealtime()初始化为0
start()开始 stop结束
监听 OnChronometerTickListener
8.8.5显示时间
1.使用DigitalClock控件
2.使用AnalogClock控件