效果:
第一种方法:在activity_main.xml文件中注册点击事件
比如定义了btn1:
<Button
android:text="Button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/btn1"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:layout_marginTop="188dp"
app:layout_constraintEnd_toEndOf="parent"
android:onClick="btn1Click"
/>
xml中增加:android:onClick="btn1Click"
然后在MainActivity.java 中实现此方法即可
public class MainActivity extends AppCompatActivity {
//btn1点击事件
public void btn1Click(View v) {
//创建一个弹出对话框
new AlertDialog.Builder(MainActivity.this)
.setTitle("提示信息")
.setMessage("您刚刚点击了:"+R.id.btn1)
.setPositiveButton("确定",null)
.show();
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//View btn=findViewById(R.id.btn1);
}
}
第二种:直接在MainActivity.java onCreate方法中注册点击事件并实现方法,xml布局文件中不需要android:onClick="btn1Click"
代码如下:
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View btn = findViewById(R.id.btn1);
//点击事件
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
new AlertDialog.Builder(MainActivity.this)
.setTitle("提示信息")
.setMessage("您刚刚点击了:"+R.id.btn1)
.setPositiveButton("确定", null)
.show();
}
});
}
}
*推荐使用第一种方法,代码比较干净清爽直观易懂,特别是大型app中。不可能所有事件实现方法都写到OnCreate事件中去