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);
}
}
}