本文介绍了,在Android中为控件添加监听的三种常见方式

编写思路:
在布局文件中:
在MainActivity中:
布局代码:指定控件的onClick属性(已经被废弃掉了)
<Button
……
android:id="@+id/button"
android:onClick="buttonClick"
…… />
Activity代码:
public class MainActivity extends AppCompatActivity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
//获取控件示例
button = findViewById(R.id.button);
}
public void buttonClick(View view) {
setToast("点击了button按钮");
}
public void setToast(String string){
Toast.makeText(this,string,Toast.LENGTH_SHORT).show();
}
}
运行结果:可不可以限定Toast的提示位置?比如说将Toast放在中间去
编写思路:
在布局文件中:指定控件 id
在MainActivity中
在onCreate内:
布局代码:此时不能设置onClick属性
<Button
……
android:id="@+id/button"
…… />
Java 代码
public class MainActivity extends AppCompatActivity {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
//获取控件示例
button = findViewById(R.id.button);
//添加监听
button.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
setToast("点击了按钮");
}
});
}
public void setToast(String string){
Toast.makeText(this,string,Toast.LENGTH_SHORT).show();
}
}
运行结果:
编写思路:
在布局文件中:
在MainActivity声明处:实现 View.OnClickListener 接口
在MainActivity中:
在onCreate方法内:
在onCreate方法外:重写onClick方法
布局代码:
<Button
……
android:id="@+id/button"
…… />
MainActivity 代码
public class MainActivity extends AppCompatActivity implements View.OnClickListener {
private Button button;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
//获取控件示例
button = findViewById(R.id.button);
//为控件注册监听器
button.setOnClickListener(this);
}
public void setToast(String string){
Toast.makeText(this,string,Toast.LENGTH_SHORT).show();
}
@Override
public void onClick(View view) {
setToast("按钮被点击了");
}
}
运行效果: