Android中实现事件监听的5种方式
- 匿名内部类
public class FirstActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
Button but2 =(Button)findViewById(R.id.button2);
//1.匿名内部类
but2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v){
// TODO Auto-generated method stub
}
});
}
}
- 内部类
public class FirstActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
Button but2 = (Button) findViewById(R.id.button2);
class MyListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub }
}
MyListener mylistener=new MyListener();
but2.setOnClickListener(mylistener);
}
3.外部类
public class FirstActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
Button but2 = (Button) findViewById(R.id.button2);
MyListener mylistener=new MyListener();
but2.setOnClickListener(mylistener);
}
}
final class MyListener implements OnClickListener{
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
}
4.通过Activity实现
public class FirstActivity extends Activity implements OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
Button but2 = (Button) findViewById(R.id.button2);
but2.setOnClickListener(this);
}
@Override
public void onClick(View v) {
// TODO Auto-generated method stub
}
}
5.通过XML布局文件实现
public class FirstActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_first);
}
public void callBack(View view) {
}
}
XML布局文件,通过控件属性onClick绑定事件函数,即android:onClick=“callBack”
<Button
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:id="@+id/button2"
android:onClick="callBack" />```