/**
* 一、Button
* 1、接口:OnClickListener
* 实现:button.setOnClickListener(this);
* 方法:public void onClick(View v){}
* 2、接口:OnLongClickListener
* 实现:button.setOnLongClickListener(this);
* 方法:public boolean onLongClick(View v){}
*
* 二、TextView,常用的单击和长按接口用法同Button。
*
* 注:实现接口可以使用匿名类,无论是写法还是可维护性,都很优秀,以Button的单击事件为例:
*
* button.setOnClickListener(new View.OnClickListener(){
* public void onClick(View v){
* //事件处理
* }});
*
* 三、onTouch( )监听触控事件
* 接口:OnTouchListener
* 实现:txv.setOnTouchListener(this);
* 方法:public boolean onTouch(View v,MotionEvent e){}
*
* 参数v是事件来源对象,e是存储有触控信息的对象,e.getAction()方法可以获取触控的动作种类:
* 返回值:MotionEvent.ACTION_DOWN,表示手指触碰到屏幕。
* 返回值:MOtionEvent.ACTION_UP,表示手指离开屏幕。
*
* 四、EditText
* 接口:TextWatcher
* 实现:et.addTextChangeListener(this)
* 方法:beforeTextChanged(){}
* onTextChanged(){}
* afterTextChanged(){}
*
* 该接口的实现方式与其他组件有明显不同。
* 该接口的方法有3个,可以没有内容,但是必须全部列出。
*
* 五、RadioButton/RadioGroup
* 接口:RadioGroup.OnCheckedChangeListener
* 实现:rg.setOnCheckedChangeListener(this)
* 方法:public void onCheckedChanged(RadioGroup arg0,int arg1){}
*
* RadioGroup的最常用方法:getCheckedRadioButtonId();获取选中按钮的资源ID。
*
* 六、CheckBox
* 接口:CompoundButton.OnCheckedChangeListener
* 实现:cb.setOnCheckedChangeListener(this)
* 方法:public void onCheckedChanged(CompoundButton buttonView,boolean isChecked){}
*
* CheckBox最常用的方法:isChecked();是否被选中,返回布尔值。
*
* 通常会有多个CheckBox复选框,可以将所有复选框的资源ID都放到一个整型数组中,然后用for循环逐一获取
* CheckBox对象,并注册其其监听对象(每个CheckBox都需要设置监听对象)。
* 可以用ArrayList来存储已经选中的CheckBox对象,选中则加入数组,否则删除。
* 例:
* ArrayList<CompoundButton> selected = new ArrayList<>();
* public void onCheckedChanged(CompoundButton buttonView,boolean isChecked){
* if(isChecked()){
* selected.add(buttonView);
* }else{
* selected.remove(buttonView);
* }
* }
*
* 七、Spinner
* 接口:AdapterView.OnItemSelecedListener
* 实现:sp.setOnItemSelecedListener(this);
* 方法:public void onItemSelected(AdapterView<?> parent,View view,int position,long id){}
* public void onNothingSelected(AdapterView<?> parent){}
*
* Spinner中比较常用的一个方法是:getSelectedItemPosition();获取选中项的位置,从0开始。
*
* 八、ListView
* 接口:AdapterView.OnItemClickListener
* 实现:lv.setOnItemClickListener(this);
* 方法:public void onItemClick(AdapterView<?> parent,View view,int position,long id){}
*
* 关于七和八的延伸:ArrayAdaper,作为Spinner和ListView连通数据的桥梁。
* 使用方法:
* 1、创建ArrayAdapter对象。
* 2、设置选单选项的显示样式(ListView中不需要此步骤)。
* 3、将ArrayAdapter和Spinner(或ListView)绑定在一起。
*
* Spinner例:
* 1、创建ArrayAdapter对象。参数1:当前活动对象 参数2:Spinner组件在显示时(未展开选单)所使用的布局文件
* 参数3:作为数据源的字符串数组
* ArrayAdapter<String> tempAd = new ArrayAdapter<>(this,android.R.layout.simple_spinner_item,tempSet);
* 2、设置选单显示样式。只有一个参数:定义展开选单后所使用的布局文件
* tempAd.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
* 3、将ArrayAdapter与Spinner绑定。创建Spinner对象并关联文件,然后指定所使用的Adapter。
* Spinner sp = (Spinner)findViewById(...);
* sp.setAdapter(tempAd);
*
* ListView例:
* 1、创建ArrayAdapter对象。
* ArrayAdapter<String> tempAd = new ArrayAdapter<>(this,android.R.layout.simple_list_item_1,
* new String[] {"春","夏","秋","冬"});
* 2、将ArrayAdapter与ListView绑定。创建ListView对象并关联文件,然后指定所使用的Adapter。
* ListView lv = (ListView)findViewById(...);
* lv.setAdapter(tempAd);
*
* 使用时一定要注意Spinner和ListView的区别。
* 数据源除了用数组之外,为了应变随时变化的显示项目,可以使用ArrayList<String>。
*
* 总结参考:《Android App开发入门 第2版》 机械工业出版社 施威铭 著 2017.8
* */
Android UI组件常用的点击事件接口及使用
最新推荐文章于 2023-03-18 18:55:35 发布