一
第一种方式是在组件的xml文件中配置android:onClick="click"
属性,然后在主类中添加click方法,
public void click(View view) {
System.out.println("hhh,我被点击了!!!");
Toast.makeText(this,"hhh,我被点击了!!!", Toast.LENGTH_SHORT).show();
}
下面的三种方式均先使用findViewById(R.id.button)方法先获得组件
//其中R.id.button为xml文件中button的id(android:id="@+id/button")
Button li_btn = findViewById(R.id.button);
二
第二种方式是通过Button组件的setOnClickListener(OnClickListener l)
方法设置监听事件,然后创建自己的监听类并实现View.OnClickListener
接口,重写OnClick(View view)
方法。
li_btn.setOnClickListener(new myButtonListener());//设置监听事件,并传入自己创建的监听类
//自己创建的内部监听类
class myButtonListener implements View.OnClickListener{
@Override
public void onClick(View v) {
System.out.println("hhh,我被点击了 2!!!");
Toast.makeText(MainActivity.this,"hhh,我被点击了2!!!", Toast.LENGTH_SHORT).show();
}
}
三
第三种方式与第二种类似,只是自己创建的类变成了让主类(MainActivity)实现View.OnClickListener接口,然后重写OnClick(View view)方法。
//让主类实现View.OnClickListener接口
public class MainActivity extends AppCompatActivity implements View.OnClickListener{
}
//然后给组件传入MainActivity
li_btn.setOnClickListener(this);
//重写OnClick(View view)
@Override
public void onClick(View v) {
System.out.println("hhh,我被点击了 3!!!");
Toast.makeText(MainActivity.this,"hhh,我被点击了3!!!", Toast.LENGTH_SHORT).show();
}
四
第四种方式根本上也与第二种方法类似,通过匿名内部类给组件传入监听事件
li_btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
System.out.println("hhh,我被点击了 4!!!");
Toast.makeText(MainActivity.this,"hhh,我被点击了4!!!", Toast.LENGTH_SHORT).show();
}
});