Android基础---给控件添加事件



这个知识很基础也很简单,仅以此作为一个开始吧。



在窗口(activity)上面放3个控件,布局随意。在这个例子中,我们要实现的功能是给2个按钮分别加上点击事件,使之改变文本框的背景颜色。

         下面是全部代码:

//1
public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        //2 获取控件
        final TextView text = (TextView)this.findViewById(R.id.main_view1);
        final Button btn1 = (Button)this.findViewById(R.id.main_btn1);
        final Button btn2 = (Button)this.findViewById(R.id.main_btn2);
        
        //添加事件
        //3
        btn1.setOnClickListener(new OnClickListener(){
            //4
            public void onClick(View v) {
	        //5
                text.setBackgroundColor(Color.RED);
	    }        	
        });
        
        btn2.setOnClickListener(new OnClickListener(){
		public void onClick(View v) {
		    text.setBackgroundColor(Color.GREEN);				
		}
        	
        });
}

下面按照代码中标记的数字进行逐一讲解。

1:onCreate函数是activity创建后首先被调用的函数,选择在这个函数里给控件添加代码应该是一种比较通用的做法,这样当activity显示在手机屏幕上的时候,控件就可以响应事件了。

onCreate函数式SDK中Activity类中定义的方法,在自己的activity中对父类的这个方法进行了重写。

2:findViewById()通过控件id获取到控件实例。一个应用中任何控件的id都是唯一的。findViewById()也是父类Activity中定义的一个方法。

需要注意final关键字,下面定义的内部类调用了这些实例,因为语法的要求,所以需要在变量前加上final。

3:setOnClickListener()是按钮控件的一个方法,用这个给按钮添加点击事件。函数需要传入OnClickListener类的实例,此处使用java语言的一个基础性特性-匿名内部类(如不太了解,请查阅相关资料)。

使用匿名内部类是定义控件事件的一种方法,还有别的方法可以使用,如果可能,将会在后续的文章中说明。

 

4:OnClickListener是个接口,new OnClickListener从语法上看好像实例化一个接口,这也是匿名内部类的一个特性。有一个前提是,需要实现接口里的所有方法。

这里实现的方法onClick()就是书写事件处理代码的地方。

5: 通过文本框(text)的setBackgroundColor给它设置1个背景颜色。Color.RED是预定义的颜色,对于简单的颜色,可以直接调用。

 

按钮2的事件代码与按钮1形式完全相同,它完成的功能是给文本框设置另一种不同的背景颜色。

事件结构就是这样的,格式是固定的。在onClick()函数面可以编写自己希望实现的功能,任意发挥自己的创造力,如果你有的话。



评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值