1、新创建一个类
2、使用内部类
3、当多个button按钮时,为简化代码而创建的实例listener
贴代码:
MainActivity.Java 文件
package com.android.study;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
public class MainActivity extends Activity {
/** Called when the activity is first created. */
private Button btn1;
private Button btn2;
private Button btn3;
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn1=(Button)findViewById(R.id.btn1);
btn1.setOnClickListener(new ButtonClick()); //给Button注册一个事件
//第二种方式
btn2=(Button)findViewById(R.id.btn2);
btn2.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
Toast.makeText(MainActivity.this, "第二种触发按钮Button方式",Toast.LENGTH_LONG).show();
System.out.println("第二种触发按钮Button方式");
}
});//内部匿名类,实现了接口的对象
btn3=(Button)findViewById(R.id.btn3);
btn3.setOnClickListener(listener);
}
//第三种方式
private OnClickListener listener=new OnClickListener()
{
public void onClick(View v){
switch(v.getId())
{
case R.id.btn1:
break;
case R.id.btn2:
break;
case R.id.btn3:
Toast.makeText(MainActivity.this, "第三种触发按钮Button方式",Toast.LENGTH_LONG).show();
System.out.println("第三种触发按钮Button方式");
break;
}
}
};
}
//第一种方式
class ButtonClick implements OnClickListener
{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
//Toast消息不能用在此处
System.out.println("第一种触发按钮Button方式");
}
}
main.xml文件
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Button
android:text="方式1"
android:id="@+id/btn1"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
<Button
android:text="方式2"
android:id="@+id/btn2"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
<Button
android:text="方式3"
android:id="@+id/btn3"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</Button>
</LinearLayout>