1.使用接口繼承按鈕監聽方法:
public class Hello_to_worldActivity extends Activity implements Button.OnClickListener{
private Button btn_say_hello;
private TextView hello_world;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn_say_hello = (Button)findViewById(R.id.bnt_SAY_HELLO_TO_WORLD);
hello_world = (TextView)findViewById(R.id.textView1);
btn_say_hello.setOnClickListener(this) ;//由於該類繼承了BUTTON的監聽,
} //因此設置監聽的參數只需傳本類的對象即可
public void onClick(View v) {
// TODO Auto-generated method stub
//抽象接口的內部方法的實現
}
2.使用接口繼承view類的監聽方法
import android.view.View.OnClickListener;
public class Hello_to_worldActivity extends Activity implements OnClickListener{
private Button btn_say_hello;
private TextView hello_world;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn_say_hello = (Button)findViewById(R.id.bnt_SAY_HELLO_TO_WORLD);
hello_world = (TextView)findViewById(R.id.textView1);
btn_say_hello.setOnClickListener(this) ;//由於該類繼承了view的監聽,
} //因此設置監聽的參數只需傳本類的對象即可
public void onClick(View v) {
//抽象接口的內部方法的實現
} }
3.不用接口,在類內部直接實現監聽
public class Hello_to_worldActivity extends Activity {
private Button btn_say_hello;
private TextView hello_world;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn_say_hello = (Button)findViewById(R.id.bnt_SAY_HELLO_TO_WORLD);
hello_world = (TextView)findViewById(R.id.textView1);
btn_say_hello.setOnClickListener(new Button.OnClickListener(){
public void onClick(View v) { //使用匿名的Button實例
//抽象接口的內部方法的實現
} }) ; } }
4.如果不使用匿名實例,也可以定義一個具體的實例,如下
public class Hello_to_worldActivity extends Activity {
private Button btn_say_hello;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
btn_say_hello = (Button)findViewById(R.id.bnt_SAY_HELLO_TO_WORLD);
btn_listener bl = new btn_listener();
btn_say_hello.setOnClickListener(bl); //bl是類btn_listener的實例,而btn_listener爲監聽方法的接口
} //因此設置監聽的參數只需傳本類的對象即可
}
class btn_listener implements Button.OnClickListener
{
public void onClick(View v) {
} }
5.多個button如何識別
button1.setOnClickListener(this);
button1.setTag(B1);
button2.setOnClickListener(this);
button2.setTag(B2);
button3.setOnClickListener(this);
button3.setTag(B3);
@Override
public void onClick(View v) {
int tag = (Integer) v.getTag();
switch (tag){
case B1:
//
break;
.......
}
}