一、在xml中设置按键的onClick绑定的函数
- 源码
package com.example.jiangyo.learn;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Toast;
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
@SuppressLint("ShowToast")
public void ButtonBeClicked(View v)
{
switch(v.getId())
{
case R.id.button1:
System.out.println("按键1");
Toast.makeText(this, "按键1", 0).show();
break;
case R.id.button2:
System.out.println("按键2");
Toast.makeText(this, "按键2", 0).show();
break;
default :
break;
}
}
}
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >
<Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="按键1"
android:onClick="ButtonBeClicked"
/>
<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="22dp"
android:text="按键2"
android:onClick="ButtonBeClicked"
/>
</RelativeLayout>
- 运行效果
![在这里插入图片描述](https://img-blog.csdnimg.cn/dbfc66678e5643c4befb447c9af84d86.png)
二、自定义类实现按键监听事件的接口
- 绑定 局部变量button和xml中的button, findViewById
btn1 = (Button) findViewById(R.id.button1);
btn2 = (Button) findViewById(R.id.button2);
- 实现接口类,在类中实现onclicked方法,写业务代码
class MyClieckHandler implements View.OnClickListener {
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;
default :
break;
}
}
}
- 为1,2两部做的准备进行绑定。使得按键被按下后执行你写的业务代码
btn1 = (Button) findViewById(R.id.button1);
btn2 = (Button) findViewById(R.id.button2);
三、匿名内部类实现按键响应
package com.example.jiangyo.learn;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
@SuppressLint("ShowToast")
public class MainActivity extends Activity {
Button btn1;
Button btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (Button) findViewById(R.id.button1);
btn2 = (Button) findViewById(R.id.button2);
btn1.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
System.out.println("按键1");
Toast.makeText(MainActivity.this, "按键1", 0).show();
}
});
btn2.setOnClickListener(new View.OnClickListener() {
public void onClick(View arg0) {
System.out.println("按键2");
Toast.makeText(MainActivity.this, "按键2", 0).show();
}
});
}
}
四、Activity实现了click接口
package com.example.jiangyo.learn;
import android.annotation.SuppressLint;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
@SuppressLint("ShowToast")
public class MainActivity extends Activity implements View.OnClickListener{
Button btn1;
Button btn2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1 = (Button) findViewById(R.id.button1);
btn2 = (Button) findViewById(R.id.button2);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
}
public void onClick(View v) {
switch(v.getId())
{
case R.id.button1:
System.out.println("按键1");
Toast.makeText(this, "按键1", 0).show();
break;
case R.id.button2:
System.out.println("按键2");
Toast.makeText(this, "按键2", 0).show();
break;
default :
break;
}
}
}