第一种:类上实现接口
public class MainActivity extends Activity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 实例化控件 -- 找控件
Button mbutton = (Button) findViewById(R.id.dj);
// 设置点击 事件的监听,this代表当前类的对象,当前类已经实现了OnClickListener这个接口
mbutton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Toast.makeText(this, "xml方式点击了第二个按钮", Toast.LENGTH_LONG).show();
}
}
第二种:内部类形式
public class MainActivity extends Activity {
protected static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//实例化控件 -- 找控件
Button mbutton = (Button) findViewById(R.id.dj);
}
class MyOnClickListener implements OnClickListener {
@Override
public void onClick(View v) {
Log.i(TAG, "内部类方式被点击了....");}
}
}
第三种:匿名内部类方法
public class MainActivity extends Activity {
protected static final String TAG = "MainActivity";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
//实例化控件 -- 找控件
Button mbutton = (Button) findViewById(R.id.dj);
mbutton.setOnClickListener(new OnClickListener() {
// 当点击之后的回调方法
@Override
public void onClick(View v) {
Log.i(TAG, "我被点击了...");
}
});
}
第四种:再布局中配置onclick属性
public class MainActivity extends Activity implements OnClickListener {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 实例化控件 -- 找控件
Button mbutton = (Button) findViewById(R.id.dj);
// 设置点击 事件的监听,this代表当前类的对象,当前类已经实现了OnClickListener这个接口
mbutton.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Toast.makeText(this, "xml方式点击了第二个按钮", Toast.LENGTH_LONG).show();
}
}