安卓按钮的四大点击事件整理
首先写一下xml文件
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/editText1"
android:text="拨号" />
<Button
android:id="@+id/button2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/button1"
android:layout_marginTop="14dp"
android:text="button1" />
<Button
android:id="@+id/button3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button2"
android:layout_alignBottom="@+id/button2"
android:layout_marginLeft="26dp"
android:layout_toRightOf="@+id/button2"
android:text="button2" />
<Button
android:id="@+id/button4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/button3"
android:layout_alignBottom="@+id/button3"
android:layout_marginLeft="18dp"
android:layout_toRightOf="@+id/button3"
android:text="button3" />
<Button
android:onClick="click"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignRight="@+id/button3"
android:layout_below="@+id/button3"
android:layout_marginTop="62dp"
android:text="test" />
点击事件
【1】定义一内部类去实现按钮的点击事件
public class MainActivity extends ActionBarActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//加载一个布局
setContentView(R.layout.activity_main);
//找到按钮
Button btn_call = (Button) findViewById(R.id.button1);
//给button按钮设置一个点击事件
btn_call.setOnClickListener(new MyClickListener());
}
//定义一个类去实现 按钮需要的接口类型
private class MyClickListener implements OnClickListener{
//当按钮被点击的时候调用
@Override
public void onClick(View v) {
System.out.println("我被点击了");
}
}
}
}
【2】通过匿名内部类去实现
public class MainActivity extends ActionBarActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//加载一个布局
setContentView(R.layout.activity_main);
//找到按钮
Button btn_call = (Button) findViewById(R.id.button1);
//给button按钮设置一个点击事件
btn_call.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
System.out.println("按钮被点击了");
}
});
}
}
【3】让当前类实现OnClickListener接口类型(用于布局里面有很多按钮需要被点击的时候)
public class MainActivity extends ActionBarActivity implements OnClickListener {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 加载一个布局
setContentView(R.layout.activity_main);
// 找到按钮
Button btn_call = (Button) findViewById(R.id.button1);
Button btn_call1 = (Button) findViewById(R.id.button2);
Button btn_call2 = (Button) findViewById(R.id.button3);
Button btn_call3 = (Button) findViewById(R.id.button4);
// 给button按钮设置一个点击事件
// 按钮的第三种点击事件
btn_call.setOnClickListener(this);
btn_call1.setOnClickListener(this);
btn_call2.setOnClickListener(this);
btn_call3.setOnClickListener(this);
}
// 当点击按钮的时候执行
public void onClick(View v) {
// 具体判断点击的哪个按钮
switch (v.getId()) {
case R.id.button1:
System.out.println("1按钮被点击了");
break;
case R.id.button2:
System.out.println("2按钮被点击了");
break;
case R.id.button3:
System.out.println("3按钮被点击了");
break;
case R.id.button4:
System.out.println("4按钮被点击了");
break;
default:
break;
}
}
}
【4】在按钮的布局上加上一个onClick属性 在Activity里面定义一个方法 方法名和属性名相同(适合自己做一些demo)
public class MainActivity extends ActionBarActivity {
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// 加载一个布局
setContentView(R.layout.activity_main);
}
//声明一个方法 方法名和你要点击的这个按钮 在布局中的onClick属于一样
public void click(View v) {
System.out.println("按钮被点击了");
}
}
}