我對「活動」按鈕操作中setOnClickListener
的不同用法感到困惑。 我發現了各種解決方案,但我確定有一些最好/更差的方法來實現它,也有一些「因爲」。按鈕的最佳做法setOnClickListeners
我理解(作爲主題)哪個是最好的方法,哪個(以及爲什麼)不是。
呼叫活動(類)的私有功能,並設置監聽器和所有蒙上它:
public class MainActivity extends AppCompatActivity { Private Button myButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); OnClickButton(); } private void OnClickButton(){ myButton = (Button)findViewById(R.id.Button1); myButton.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // button actions } }); } }
設置在活動setOnClickListener,然後調用相應的功能: (在這種情況下,我不也明白爲什麼視圖定義爲的onClick 最終)
public class MainActivity extends AppCompatActivity { Private Button myButton; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); myButton.setOnClickListener(onClickListener); } private OnClickListener onClickListener = new OnClickListener() { @Override public void onClick(final View v) { // button actions } }
- 只是一個
ON MAINACTIVITY.XML ADD:
android:onClick="onButtonClick"
ON MAINACTIVITYCLASS:
public class MainActivity extends AppCompatActivity {
Private Button myButton;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void onButtonClick(View v){
// button actions
}
}
注意:通過鏈接在XML文件中的函數參數MyView的SA功能,我發現(需要的證明了) 3度方式不是一種好的做法,因爲在框架集中不受支持。
如果你有更強的好的編碼解決方案,請添加它。
請嘗試清除良好做法和不良做法差異,以及爲什麼某些事情更爲正確,或者是一個不好的解決方案。
希望這可能對其他人有用, 我寫了這篇文章也因爲我閱讀的很多帖子都很舊。 謝謝。
https://stackoverflow.com/questions/30082892/best-way-to-implement-view-onclicklistener-in-android –
訪問這裏已經answerd。 https://stackoverflow.com/questions/30082892/best-way-to-implement-view-onclicklistener-in-android –
我讀過這篇文章,並試圖創建:public class ActivityMain extends Activity實現View.OnClickListener .. 。 。但我有錯誤:「類」MainActivity「必須被聲明爲抽象或在'OnClickListener'中實現抽象方法'onClick(view)' – Marco