Android笔记二十三.Android基于事件监听器处理机制
package com.example.androidevent; import android.app.Activity; import android.graphics.Color; import android.graphics.Typeface; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.EditText; import android.widget.TextView; public class EventTest1 extends Activity implements OnClickListener { private TextView content; int flag=0; //字体样式标识 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); content = (TextView)findViewById(R.id.content); //1.颜色:内部类形式 Button redBtn = (Button)findViewById(R.id.red); Button greenBtn = (Button)findViewById(R.id.green); Button blueBtn = (Button)findViewById(R.id.blue); EventListener inner = new EventListener(); //实例化一个事件监听器对象 redBtn.setOnClickListener(inner); //向以下界面组件注册同一个事件监听器 greenBtn.setOnClickListener(inner); blueBtn.setOnClickListener(inner); //2.字体大小:外部类形式 Button bigger = (Button)findViewById(R.id.big); Button smaller = (Button)findViewById(R.id.small); OuterListener outer = new OuterListener(content);//实例化一个事件监听器对象 bigger.setOnClickListener(outer); smaller.setOnClickListener(outer); //3.字体样式:类自身作为事件监听器 Button boldBtn = (Button)findViewById(R.id.bold); Button inclineBtn = (Button)findViewById(R.id.incline); Button normalBtn = (Button)findViewById(R.id.normal); boldBtn.setOnClickListener(this); //向以下界面组件注册同一个事件监听器 inclineBtn.setOnClickListener(this); normalBtn.setOnClickListener(this); //4.匿名内部类 final EditText text = (EditText)findViewById(R.id.text); text.setOnClickListener(new OnClickListener(){ public void onClick(View v) { String contentText=text.getText().toString(); content.setText(contentText); //将编辑框内容设置到文本显示框中 } }); } /*方法一:内部类形式 * 在onClick函数中,通过视图的getId()方法判定产生事件组件的ID并作出相应的响应*/ public class EventListener implements OnClickListener { public void onClick(View arg0) { switch(arg0.getId()) { case R.id.red: //设置红色按钮被按下 content.setTextColor(Color.RED); break; case R.id.green: content.setTextColor(Color.GREEN); break; case R.id.blue: content.setTextColor(Color.BLUE); break; default: break; } } } /*方法3.类自身作为事件监听器*/ @Override public void onClick(View v) { //flag为样式标识,当flag=0表示默认,flag=1表示倾斜,flag=2表示加粗,flag=3表示倾斜又加粗 switch(v.getId()) { case R.id.bold: //设置加粗 if(flag==1||flag==3) { content.setTypeface(Typeface.MONOSPACE,Typeface.BOLD_ITALIC); //设置系统默认的字体样式 flag=3; } else { content.setTypeface(Typeface.MONOSPACE,Typeface.BOLD); flag=2; } break; case R.id.incline: if(flag==2 || flag==3) { content.setTypeface(Typeface.MONOSPACE,Typeface.BOLD_ITALIC); //设置系统默认的字体样式 flag=3; }else { content.setTypeface(Typeface.MONOSPACE,Typeface.ITALIC); flag=1; } break; case R.id.normal: content.setTypeface(Typeface.MONOSPACE,Typeface.NORMAL); //设置系统默认的字体样式 flag=0; break; default: break; } } }
package com.example.androidevent; import android.view.View; import android.view.View.OnClickListener; import android.widget.TextView; /*外部类形式*/ public class OuterListener implements OnClickListener { private TextView text; private float size; //构造方法1:将文本组件对象作为参数传递并赋值给类成员对象 public OuterListener(TextView t) { this.text = t; } //构造方法2 public OuterListener() { super(); } public void onClick(View v) { size= text.getTextSize(); //获取文本字体大小 switch(v.getId()) { case R.id.big : { size+=4; break; } case R.id.small : { size-=4; break; } default: break; } //设置最值限度 if(size<=8) size=8; if(size>=72) size=72; text.setTextSize(size); } }
事件 |
接口 |
处理方法 |
描述 |
单击事件 |
View.OnClickListener |
abstract void onClick (View v) |
单击组件时触发 |
单击事件 |
View.OnLongClickListener |
abstract boolean onLongClick (View v) |
长按组件时触发 |
键盘事件 |
View.OnKeyListener |
abstract boolean onKey(View v, int keyCode, KeyEvent event) |
处理键盘事件 |
焦点事件 |
View.OnFocusChangeListener |
abstract void onFocusChange (View v, boolean hasFocus) |
当焦点发生改变时触发 |
触摸事件 |
View.OnTouchListener |
abstract boolean onTouch (View v, MotionEvent event) |
产生触摸事件 |
方法 |
描述 |
void setOnClickListener(View.OnClickListener l) |
注册单击事件 |
void setOnLongClickListener(View.OnLongClickListener l) |
注册长按事件 |
void setOnKeyListener(View.OnKeyListener l) |
注册键盘事件 |
void setOnFocusChangeListener(View.OnFocusChangeListener l) |
注册焦点改变事件 |
void setOnTouchListener(View.OnTouchListener l) |
注册触摸事件 |
void setOnCreateContextMenuListener(View.OnCreateContextMenuListener l) |
注册上下文菜单事件 |
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。