Android之setOnClickListener()

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;

  .......

}       
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章