onclick事件的定義方法,分為三種,分別為在xml中進行指定方法;在Actitivy中new出一個OnClickListenner();實現OnClickListener接口三種方式。
代碼分別如下:
1. xml指定onclick事件,這種方式比較適用于指定的button,能使java代碼相對簡化一些:
xml文件中:
<span style="color:#333333;"><Button android:text="Button03" android:id="@+id/Button03" android:layout_width="wrap_content" android:layout_height="wrap_content" <span style="color:#FF0000;">android:onClick="</span><span style="color:#ff0000;">Btn3OnClick</span><span style="color:#333333;">"</span>> </Button> </span>
紅色部分指定響應的方法名!
Activity中定義方法:
public void Btn3OnClick(View view){ Intent intent = new Intent(mainActivity.this, fristActivity.class); intent.putExtra("data", "mainActivity"); startActivity(intent); } 2. 在onCreate方法中為button指定綁定操作,以下方法中,xml里如果同時指定了事件的執行方法,則優先執行xml中的內容。
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findViewById(R.id.Button03).setOnClickListener(new OnClickListener(){ @Override public void onClick(View v) { Intent intent = new Intent(mainActivity.this, fristActivity.class); intent.putExtra("data", "mainActivity"); startActivity(intent); } }); } 此種方式會使代碼看上去比較直觀,但是效率不高,特別是寫在listView的適配器中getView時,new出多個對象,占用資源。優化版的寫法如下,將點擊對象提出來如下:
protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findViewById(R.id.Button03).setOnClickListener(onclick); } OnClickListener onclick = new OnClickListener(){ @Override public void onClick(View v) { Intent intent = new Intent(mainActivity.this, fristActivity.class); intent.putExtra("data", "mainActivity"); startActivity(intent); } }; 3. 實現OnClickListener接口,這種方式使用量比較多,能解決同一個activity中所有的onclick問題。
public class mainActivity extends Activity implements OnClickListener{ protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); findViewById(R.id.Button02).setOnClickListener(this); findViewById(R.id.Button03).setOnClickListener(this); } public void onClick(View view) { switch (v.getId()) { case R.id.Button03: Intent intent = new Intent(mainActivity.this, fristActivity.class); intent.putExtra("data", "mainActivity"); startActivity(intent); break; case R.id.Button02: Intent intent = new Intent(mainActivity.this, loginActivity.class); intent.putExtra("data", "mainActivity"); startActivity(intent); break; default: break; } } …… } 這三種方式都能實現點擊事件的處理,可根據使用環境,分析哪種比較適合!
新聞熱點
疑難解答