传统版:
1.
public class MainActivity extends Activity {
//声明控件
//eg:
Button mbutton;
//...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initMainUI();
}
}
2.
//初始化UI和设置控件的监视器
private void initMainUI() {
setContentView(R.layout.activity_main);
mbutton = (Button) findViewById(R.id.reco);
mbutton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
mbuttonOnClickEvent();
}
});
}
3.
//对应控件监视器具体要做的事
private void mbuttonOnClickEvent() {
//do something
}
}
使用内部类版:
1.
public class MainActivity extends Activity {
//声明控件
//eg:
Button mbutton;
//...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initMainUI();
}
2.
//初始化UI和设置控件的监视器
private void initMainUI() {
setContentView(R.layout.activity_main);
mbutton = (Button) findViewById(R.id.reco);
mbutton.setOnClickListener(new mbuttonListener()};
}
3.
//使用继承OnClickListener接口的内部类
class mbuttonListener implements OnClickListener{
@Override
public void onClick(View v){
//do something
}
}
Activity继承接口版:
1.
public class MainActivity extends Activity implements OnClickListener {
//声明控件
//eg:
Button mbutton;
//...
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initMainUI();
}
2.
//初始化UI
private void initMainUI() {
setContentView(R.layout.activity_main);
mbutton = (Button) findViewById(R.id.reco)<span style="font-family: Arial, Helvetica, sans-serif;">.setOnClickListener(this)</span>;
}
3.
//重写所继承OnClickListener接口的方法
@Override
public void onClick(View v) {
if(v == mbutton){
//do something
}
}
Activity继承接口版2:
1.
public class MainActivity extends Activity implements OnClickListener {
//这里不用声明控件
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
initMainUI();
}
}
2.
//初始化UI
private void initMainUI() {
setContentView(R.layout.activity_main);
findViewById(R.id.reco).setOnClickListener(this);
}
3.
//重写所继承OnClickListener接口的方法
@Override
public void onClick(View v) {
switch(v.getId())
{
case R.id.reco:
//do something
break;
}
}