android中点击事件的4种写法
android 中获取到一些控件(比如说按钮)时,一般会为其添加点击事件, android 中的点击事件一共有 4 中写法。
假设在布局文件中声明如下
.......
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/bt_1"
/>
.......
一、通过匿名内部类
主要的 java 代码如下,首先获取到该 Button 控件。
private Button bt_1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt_1 = (Button) findViewById(R.id.bt_1);
bt_1.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//点击后触发执行的代码
}
二、通过内部类
首先获取到该控件,再创建一个内部类,该内部类实现 OnClickListener 接口。
private Button bt_1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt_1=(Button) findViewById(R.id.bt_1);
bt_1.setOnClickListener(new MyListener());
}
class MyListener implements OnClickListener{
@Override
public void onClick(View v) {
// 点击Button后触发执行的代码
}
}
三、在布局文件中添加 onClick 属性
更改布局文件中 Button 的属性
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/bt_1"
android:onClick="click"
/>
添加点击事件时,直接声明一个方法,不必获取到控件
// private Button bt_1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// bt_1 = (Button) findViewById(R.id.bt_1);
}
public void click(View view){
//点击Button后触发执行的代码
}
四、通过实现接口
使用此方法时,主方法要实现 OnClickListener 接口,并且覆写接口中定义的 onClick 方法
public class MainActivity extends Activity implements OnClickListener {
private Button bt_1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
bt_1 = (Button) findViewById(R.id.bt_1);
//此处传入this即可
bt_1.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// 点击Button后执行的代码
}
}
阿里云工作强度 667人发布
