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;//字体样式标识@Overrideprotected 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; } }}

做对的事情比把事情做对重要。

Android笔记二十三.Android基于事件监听器处理机制

相关文章:

你感兴趣的文章:

标签云: