【Android之按钮的三种点击事件】
文章目录
一、使用匿名内部类来创建按钮的点击事件
二、通过 布局中指定Onclick属性创建点击事件
三、通过在当前Activity中实现OnclickListener接口。
一、使用匿名内部类来创建按钮的点击事件
在布局里创建一个id为nan_btn的Button按钮,代码如下:
<Button
android:id="@+id/nan_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮的点击事件之一:通过id来创建"
android:background="#04EDAF"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"/>
然后在此布局相对应的Activity中写逻辑代码:
public class MainActivity extends AppCompatActivity {
private Button btn;//声明按钮的变量
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//将声明的变量绑定按钮的id
btn=findViewById(R.id.nan_btn);
//用绑定后的变量创建点击事件
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
//在此设置按钮点击后的事件
btn.setText("按钮点击事件的第一种已经触发~~~");
}
});
}
}
以上就是通过id 匿名内部类方式创建的点击事件。
二、通过 布局中指定Onclick属性创建点击事件
在布局中添加Onclick属性来创建点击事件,记得给按钮起个id
<Button
android:id="@+id/nan_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮的点击事件之二:通过布局添加Onclick属性来创建"
android:background="#04EDAF"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
android:onClick="onclick"/>
当你添加Onclick属性时会报错,因为没有在Activity中创建,可以在Onclick属性那里 按下快捷键:“Alt+回车” 。
创建后会自动跳转到Activity中,此时Onclick事件就创建ok了:
这种方式比第一种方式交方便些,写下点击事件就ok了
public class MainActivity extends AppCompatActivity {
private Button btn;//声明按钮的变量
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//将声明的变量绑定按钮的id
btn=findViewById(R.id.nan_btn);
}
public void onclick(View view) {
btn.setText("方式二:通过布局中添加Onclick属性");
}
}
三、通过在当前Activity中实现OnclickListener接口。
方式三是通过在Activity中实现OnclickListener接口来实现
布局还是如此:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="【按钮的三种点击事件】:"
android:textSize="26sp"
android:textColor="#EF3C00"
android:textStyle="italic"
android:layout_marginBottom="20dp"/>
<Button
android:id="@+id/nan_btn"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="按钮的点击事件之三:通过Activity中实现OnclickListener接口来创建"
android:background="#04EDAF"
android:layout_marginRight="10dp"
android:layout_marginLeft="10dp"
/>
</LinearLayout>
Activity中实现OnclickListener接口:
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button btn;//声明按钮的变量
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//将声明的变量绑定按钮的id
btn=findViewById(R.id.nan_btn);
//方式三通过实现接口来创建点击事件 初始化控件
btn.setOnClickListener(this);//this 代表了OnclickListener的引用
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.nan_btn://每个按钮的id
btn.setText("方式三:通过实现接口来实现点击事件");
break;
}
}
}
这种通过实现OnclickListener接口来创建的点击事件 较 前两种 省下很多代码量
总结
按钮的三种点击事件,各有利弊,可以根据需求来选择。