我的理解是,當我創建偵聽點擊一個按鈕對象我必須:setOnclickListener VS OnClickListener VS View.OnClickListener
- 創建按鈕對象
- 使用OnClickListner讓它聽用戶點擊
- 使用的onClick用戶後執行的操作點擊按鈕
現在
- 哪裏
setOnClickListener
配合到上述邏輯? - 哪一個實際聽按鈕點擊?
- setOnclickListener?
- ONclickListener?
- View.OnClickListener?
- 那3個之間有什麼區別?
以下是我在Android開發人員發現:
The example below shows how to register an on-click listener for a Button.
// Create an anonymous implementation of OnClickListener
private OnClickListener mCorkyListener = new OnClickListener() {
public void onClick(View v) {
// do something when the button is clicked
}
};
protected void onCreate(Bundle savedValues) {
...
// Capture our button from layout
Button button = (Button)findViewById(R.id.corky);
// Register the onClick listener with the implementation above
button.setOnClickListener(mCorkyListener);
...
}
您也可能會發現更方便地實現OnClickListener作爲活動的一部分。這將避免額外的類加載和對象分配。例如:
public class ExampleActivity extends Activity implements OnClickListener {
protected void onCreate(Bundle savedValues) {
...
Button button = (Button)findViewById(R.id.corky);
button.setOnClickListener(this);
}
// Implement the OnClickListener callback
public void onClick(View v) {
// do something when the button is clicked
}
}
雖然第二種方式不會比其他方式稍好一些嗎?第一種和第三種方法首先找出哪個視圖被點擊並隨後採取行動,而第二種方式則可以直接進入視圖。好奇看別人說什麼,因爲我誠實地不是100%確定我的邏輯是否正確。 – CodyEngel
@赫斯基哈斯基。知道什麼時候關注表現,什麼時候關注表現。問問自己:用戶點擊的頻率如何?當用戶點擊時什麼是可接受的響應時間?我的目標設備每秒執行多少條Java指令?只有少量的指示才能確定哪個視圖是重要的?還要考慮你將要做的工作來處理點擊。計算OS內部的代碼,可以執行數千,數萬,甚至數十萬個java指令。我想你會看到這個去哪裏... – ToolmakerSteve
是否可以同時使用它們,我的意思不僅是「實現View.OnClickListener」,還有「SetOnClickListener」 – Patzu