实现是为了学习,学习是为了实现。
#简易文本编辑器
(一)预想功能:
1.用户点击不同的按钮可以改变文本(颜色、大小、样式)
2.在输入框输入文字,使其显示到文本显示区(即改变文本内容)
(二)预备知识:
事件处理机制 :
1.基于监听的事件处理
2.基于回调的事件处理
3.直接绑定到标签
1.基于监听的事件处理
主要做法是为Android界面的组件(如按钮)绑定特定的事件监听器,在事件监听器的方法里编写事件处理代码。
涉及对象:
1.事件源:能和用户发生交互的组件(如按钮、菜单等)
2.事件:封装了操作的相关信息(id等)
3.事件监听器:封装事件处理方法
工作原理:事件源将整个事件委托给事件监听器处理:当该事件源发生指定事件时,系统自动生成事件对象,并通知所委托的事件监听器,由事件监听器相应的事件处理器来处理这个事件。
(三)实现思路:
1.布局和代码整体绑定方法this.setContentView()
2.确定事件源(组件)
3.通过this.findViewById()方法,使视图和布局组件联动起来
4.实现将事件源与监听器对象绑定,一般通过“setOnClickLinstener(参数) ”这类方法去绑定
5.关于监听器对象:四种形式
四种形式:1.匿名内部类 2.内部类 3.外部类 4.当前类本身继承监听接口
接口里是抽象方法,继承后需重写
6.布局实现
整体采用垂直线性布局
内部采用四个水平线性布局
(四)具体实现:
代码
TextView testText;
private Button btnRed = null,btnGreen = null,btnBlue = null;
private Button btnBig = null,btnSmall = null,btnDefault1 = null;
private Button btnBold = null,btnTilter = null,btnDefault2 = null;
private EditText edit;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initView();
}
void initView(){
testText = (TextView)this.findViewById(R.id.testText);
btnRed = (Button) this.findViewById(R.id.btnRed);
btnGreen = (Button) this.findViewById(R.id.btnGreen);
btnBlue = (Button)this.findViewById(R.id.btnBlue);
btnBig = (Button)this.findViewById(R.id.btnBig);
btnSmall = (Button)this.findViewById(R.id.btnSmall);
btnDefault1 = (Button)this.findViewById(R.id.btnDefault1);
btnBold = (Button)this.findViewById(R.id.btnBold);
btnTilter = (Button)this.findViewById(R.id.btnTilter);
btnDefault2 = (Button)this.findViewById(R.id.btnDefault2);
edit = (EditText)this.findViewById(R.id.edit);
ColorListener myColorListener = new ColorListener();//创建监视器对象
SizeListener mySizeListener = new SizeListener(testText);
btnRed.setOnClickListener(myColorListener);//绑定监视器对象
btnGreen.setOnClickListener(myColorListener);
btnBlue