Android中事件处理
1) OnClickLister():单击事件
比如:单击按钮, 会触发 setOnClickLister(*);
单击文本框setOnClickLisetr(*);
单选按钮组呢???
//OnClickListener():点击事件
ClickListener l1 = new ClickListener();
title_tv.setOnClickListener(l1);
class ClickListener implements OnClickListener{
@Override
public void onClick(View v) {
}
}
2) onFocusChangeListener():焦点事件
//onFocusChangeListener():焦点事件
FocusChangeListener l2 = new FocusChangeListener();
input_et.setOnFocusChangeListener(l2);
class FocusChangeListener implements OnFocusChangeListener{
@Override
public void onFocusChange(View v, boolean hasFocus) {
//onFocusChange():获取焦点|失去焦点时,所属控件完成操作
}
}
3) onKeyListener():键盘事件
//onKeyListener():键盘事件
OnKeyListener k = new OnkeyListener();
input_et.setOnKeyListener(k);
class OnkeyListener implements OnKeyListener{
@Override
public boolean onKey(View v, int keyCode, KeyEvent event){
return false;
}
}
4) OnCheckedChangeListener():单选设置事件处理
private RadioButton rb1;
private RadioButton rb2;
private RadioButton rb3;
private RadioGroup rg;
@Override
protected voidonCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_radiobutton);
rb1 = (RadioButton)findViewById(R.id.radio0);
rb2 = (RadioButton)findViewById(R.id.radio1);
rb3 = (RadioButton)findViewById(R.id.radio2);
rg = (RadioGroup)findViewById(R.id.radioGroup1);
//3.单选设置事件处理
rg.setOnCheckedChangeListener(new OnCheckedChangeListener() {
/* onCheckedChanged():
* 用于处理具体选择的单选(多选)某一项后,执行的具体操作
*/
@Override
public void onCheckedChanged(RadioGroup group, int checkedId) {
}
});
}
5) OnLongClickListener():长按事件---细节
ImageView
长按图片,改变模拟器背景
1> 定义 ImageView、TextView 控件|声明控件
2> 查找 ImageView、TextView
3> 改变模拟器背景
4> 设置提示文本“长按图片是用来改变模拟器背景的”
//OnLongClickListener():长按事件
LongClickListenerl =new LongClickListener();
pic_iv.setOnLongClickListener(l);
class LongClickListener implements OnLongClickListener{
//onLongClick:长按某个控件后
@Override
publicbooleanonLongClick(View v){
try{
MainActivity.this.clearWallpaper();//清除模拟器当前的背景
//给模拟器设置新背景图片
//设置背景时有可能也会产生异常,也需要放在try语句块中
//Bitmap bitMap =
//Drawable da=MainActivity.this.pic_iv.getResources().getDrawable(R.id.imageView1);
//setWallpaper需要权限
setWallpaper(MainActivity.this.pic_iv.getResources().openRawResource(R.drawable.folder_music));
//MainActivity.this.setWallpaper(MainActivity.this.pic_iv.getResources().openRawResource(R.drawable.pic4));//获取资源
} catch (IOException e) {
e.printStackTrace();
e.getCause();
e.getMessage();
}finally{//无论如何都会执行。
tishi_tv.setText("长按会改变当前模拟器的背景哦");
}
//getDrawable(R.drawable.pic4));
returntrue;
}
}
6)Spinner 下拉列表框
1> 获取下拉列表项的内容
资源文件city_data.xml
如何设置下拉列表框中每个列表项的内容????
放在一个资源文件中 xml
新建一个xml资源文件,在文件中通过添加<item>,构建列表项内容
2> 选中具体某一项时,TextView会显示出提示信息
Spinner设置事件
2.1 > 声明Spinner控件 TextView
2.2 > 查找控件
2.3 > 为Spinner设置事件OnItemSelectedListener
//OnItemSelectedListener():下拉事件
ItemSelectedListenerk=new ItemSelectedListener();
spCity_sp.setOnItemSelectedListener(k);
class ItemSelectedListener implementsOnItemSelectedListener{
/**onItemSelected():单击|选中了下拉列表框中的某一项时,会执行此方法
* 即:选中列表框中位置为position的那一项时,执行的操作
* AdapteView:是一个抽象类,指的是具体实现它的某个控件,这里指的是spinner
*/
@Override
publicvoidonItemSelected(AdapterView<?> adapterView, View view,int
position, long id) {
String value = adapterView.getItemAtPosition(position).toString();
//TextView设置内容
tishi_tv.setText("选中的是:"+value);
}
@Override
publicvoidonNothingSelected(AdapterView<?> parent) {
//什么都没有写
}
}
7)模拟实现类似于搜索框自动提示功能
1> 效果:类似于在百度搜索框中输入某个单词,会列出以这个单词开头的某些单词或者
使用频率列出的某些单词。
1> 自动提示框AutoCompleteTextView常用属性
2> 为AutoCompleteTextView设置数据
数据如何获取???
如何设置呢???
2> 适配器
2.1> ArrayAdapter :最简单的一种适配器,将数组或者其它简单的内容通过设置放到界面上。
基本结构:
ArrayAdapter<???>adapter = new ArrayAdapter<???>
(参数1,参数2,参数3);
参数1:上下文对象 this|MainActivity.this
参数2:显示样式
参数3:数据源
2.2> SimpleAdapter:操作的数据源主要是集合或者其它比较复杂的数据类型。
2.3> BaseAdapter:Android中提供的使用最广泛的一种适配器。它是抽象的,不能直接使用,需要自己定义一个类,然后继承。
BaseAdapter,有四个方法:
getItem():
getItemId():
getCount():
getView():
android:completionHint="" 弹出的提示框的默认标题
android:completionThreshold="2" 设置输入几个字符才会弹出提示
//为控件设置数据(String数组中的数据)
//1 新建一个适配器,此适配器用于将数组内容显示至控件中
ArrayAdapter<String> adapter = newArrayAdapter<String>(
MainActivity.this,//上下文对象
android.R.layout.simple_dropdown_item_1line,
字符串数组);//数据源
//android.R.layout.simple_dropdown_item_1line 样式
//2 设置适配器各种属性
//暂时不写
//4.3 为AutoCompleteTextView设置适配器
auto_tv.setAdapter(adapter);