1)Buttons (按钮)
a)Button
按钮
添加onClick监听事件
b)ImageButton
图片按钮
添加onClick监听事件
c)Switch(开关):checked
应用:可以添加onClick监听事件实现相应事件可以用if判断
Switch btn=(Switch)v;//开关
if(btn.isChecked()){
Toast.makeText(this,"打开wifi", 1).show();
}else{
Toast.makeText(this,"关闭wifi", 1).show();
}
也可以用setOnCheckedChangeListener添加监听
public void onCheckedChanged(CompoundButton buttonView,
boolean isChecked) {
Toast.makeText(MainActivity.this,"tBtn.isChecked="+isChecked, 1).show();
}
方法: isChecked() 判断是否打开开关,
d)CheckBox(复选框):checked(多选框)
应用;可以添加onClick监听事件
(textAppearance="?android:attr/textAppearanceMedium"
优先选用系统的属性)textview中的字体属性
if(box.isChecked()){//判定是否是选中的
checked.add(box.getText().toString());
}
e)RadioButton(单选框):RadioGroup(线性布局的子类类型)
应用;可以添加onClick监听事件
public void onClick(View v) {
RadioButton rBtn = (RadioButton)
// 获得选中的Button
findViewById(rGroup.getCheckedRadioButtonId());
Toast.makeText(this, rBtn.getText().toString(), 1).show();
}
RadioGroup(线性布局的子类类型)
中可设置水平或垂直
RadioButton 中android:drawableTop/Bottom 可设置图片所在的位置上下左右
多个radioButton 可以引用style="@style样式来减少代码量
2)TextFields (文本域)
a)EditText(编辑框)
应用可设置点击事件、和触摸事件
//设定对象可编辑
edit03.setFocusable(true);
edit03.setFocusableInTouchMode(true);
//设定光标位置
edit03.setSelection(edit03.getText().length());
<!-- 设定EditText默认有焦点的对象 -->
<requestFocus />
android:focusable="false" 设置默认不可编辑
设置更改文本编辑框的格式和背景色
在drawable目录下建shape 文件设置属性
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#ffffffff"/>
<!-- 通过此属性描边 -->
<strokeandroid:width="3dp"android:color="#ff669900"/>
<!-- 通过此属性描设置角度-->
<corners android:radius="8dp"/>
<!-- 通过此属性设置内边距 -->
<padding android:left="10dp" android:top="10dp" android:right="10dp" android:bottom="10dp"/>
</shape>
在drawable目录下建selector文件设置属性
设置点击前和点击后的不同样式
<selectorxmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/editor_shape_01" android:state_focused="true"></item>
<item android:drawable="@drawable/editor_shape_02"></item>
</selector>
b)AutoCompleteTextView (自动完成编辑框)
使用需要构建new ArrayAdapter 适配器来显示提示的的数据。
//设置何时出现提示字符(1表示输入一个字符时,默认是两个字符)
应用方法 ato.setThreshold(1);
c)SearchView(查询框,内置了一个AutoCompleteText)
应用监听事件
setOnQueryTextListener(this)
使用SearchView显示提示信息需在下面添加listview来显示
// 设置searchView的背景
// 获得searchView中的资源id(假如想获得官方布局的Id
// 时,但又不能直接方法,可以采取此方式)
Int resId= getResources().getIdentifier("android:id/search_plate", null, getPackageName());
// 根据id找到对应的子元素,并设置背景
LinearLayoutlayout=(LinearLayout)searchView.findViewById(resI)
layout.setBackgroundResource(R.drawable.editor_selector_01)
// 展开searchView
searchView.onActionViewExpanded();
// 添加监听器
searchView.setOnQueryTextListener(this);
}
/** 提交查询操作时执行此方法 */
@Override
public boolean onQueryTextSubmit(String query) {
Log.i("TAG", "onQueryTextSubmit.query=" + query);
return false;
}
/** 文本内容发生变化时自动执行 */
@Override
public boolean onQueryTextChange(String newText) {
Log.i("TAG", "onQueryTextChange.newText=" + newText);
adapter.getFilter()// 获得过滤器
.filter(newText);// 过滤listview中要显示的内容
return false;
}
3)Bars(条)
a)ProgressBar (进度条)
style="?android:attr/progressBarStyleLarge" 设置默认样式
b)SeekBar(拖动条)
Thumbs 设置颜色
应用添加事件 seekBar.setOnSeekBarChangeListener(this);
@Override
有变化就会执行
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
Log.i("TAG", "onProgressChanged.progress="+progress);
}
@Override
点击时执行
public void onStartTrackingTouch(SeekBar seekBar) {
Log.i("TAG", "onStartTrackingTouch.progress="+seekBar.getProgress());
}
@Override
抬起时执行
public void onStopTrackingTouch(SeekBar seekBar) {
Log.i("TAG", "onStopTrackingTouch.progress="+seekBar.getProgress());
}
设置点击抬起时的不同样式
<selectorxmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/seekbar_shape_02" android:state_pressed="true"/>
<item android:drawable="@drawable/seekbar_shape_01"/>
</selector>
<shapexmlns:android="http://schemas.android.com/apk/res/android" android:shape="oval">设置为圆形样式
<solid android:color="#88669900"/>
<stroke android:width="2dp" android:color="#ffff0000"/>
<size android:width="8dp" android:height="10dp"/>
</shape>
c)RatingBar(评价条)
应用点击事件 rBar.setOnRatingBarChangeListener(this)
<!-- 评价条 -->
<RatingBar
android:numStars="6" 有几个
android:stepSize="0.5"/> 每次点击增加多少