Android Button 的单击事件的三种响应方法

 Android(SDK 1.5) Button 的单击事件的三种响应方法( 个人比较推荐第三种):

 

第一种:个人认为写法不好,不容易看懂。

package leo.zheng.ButtonClick;

import android.app.Activity;
import android.os.Bundle;

import android.graphics.Color;
import android.widget.Button;

import android.widget.TextView;
import android.view.View;
import android.view.View.OnClickListener;

import android.util.Log;

public class ButtonClick extends Activity {
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        final TextView Text = (TextView)findViewById(R.id.ColorView);
        final Button redButton = (Button)findViewById(R.id.Button01);
        final Button greenButton = (Button)findViewById(R.id.Button02);
        
        redButton.setOnClickListener(
        	new OnClickListener()
        	{
        		public void onClick(View v)
        		{
        			Text.setBackgroundColor(Color.RED);
        			Log.v("Button click", "red");
        		}
        	}
        );
        
        greenButton.setOnClickListener(
        	new OnClickListener()
        	{
        		public void onClick(View v)
        		{
        			Text.setBackgroundColor(Color.GREEN);
        			Log.v("Button click","green");
        		}
        	}
        );
    }
}


 

第二种:Activity implements OnClickListener

package leo.zheng.ButtonClick2;

import android.app.Activity;
import android.os.Bundle;

import android.view.View;
import android.view.View.OnClickListener;

import android.util.Log;

import android.widget.TextView;
import android.widget.Button;

public class ButtonClick2 extends Activity implements OnClickListener {
    /** Called when the activity is first created. */
	private TextView textChange;
	private Button button1;
	private Button button2;
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        textChange = (TextView)findViewById(R.id.TextView01);
    	button1 = (Button)findViewById(R.id.Button01);
    	button1.setOnClickListener(this);
    	button2 = (Button)findViewById(R.id.Button02);
    	button2.setOnClickListener(this);
    }
    
    public void onClick(View v)
    {
    	Log.v("Click", "Button id = " + v.getId());
    	switch(v.getId())
    	{
    	case R.id.Button01:
    		textChange.setText("Ok");
    		break;
    	case R.id.Button02:
    		textChange.setText("Cancal");
    		break;
    	default:
    		break;
    	}
    }
}


 

第三种:个人比较推荐。

package leo.zheng.ButtonClick3;

import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;

import android.util.Log;

import android.widget.Button;
import android.widget.TextView;

import android.view.View;
import android.view.View.OnClickListener;

public class ButtonClick3 extends Activity {
    /** Called when the activity is first created. */
	private Button button1;
	private Button button2;
	private TextView colorShow;
	
	private button1_OnClickListener listener1 = new button1_OnClickListener();
	private button2_OnClickListener listener2 = new button2_OnClickListener();
	
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        
        button1 = (Button) findViewById(R.id.Button01);
        button2 = (Button) findViewById(R.id.Button02);
        colorShow = (TextView) findViewById(R.id.TextView01);
        
        button1.setOnClickListener(listener1);
        button2.setOnClickListener(listener2);
    }
    
    class button1_OnClickListener implements OnClickListener
    {
    	public void onClick(View v)
    	{
    		Log.v("Click", "Button GREEN");
    		colorShow.setBackgroundColor(Color.GREEN);
    	}
    }
    
    class button2_OnClickListener implements OnClickListener
    {
    	public void onClick(View v)
    	{
    		Log.v("Click", "Button BLUE");
    		colorShow.setBackgroundColor(Color.BLUE);
    	}
    }
}


 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值