![](/img/trans.png)
[英]How to use Butterknife with onClickListener in Activity?
[英]How to implemente OnClickListener in an activity?
在我的應用程序中,我有一個帶有3個按鈕的簡單活動,並且為了不為每個按鈕設置單獨的OnClickListener,我決定在我的活動中實現它,但是它不起作用。
這是我的代碼
public class MainActivity extends Activity implements View.OnClickListener{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
private void CheckForViolations(){
}
@Override
public void onClick(View v) {
switch (v.getId()){
case R.id.btnCheck:
CheckForViolations();
break;
case R.id.btnViewAllViolations:
Intent violationListIntent = new Intent(MainActivity.this,ViolationListActivity.class);
startActivity(violationListIntent);
break;
case R.id.btnSettings:
Intent settingsIntent = new Intent(MainActivity.this, ViolationListActivity.class);
startActivity(settingsIntent);
break;
}
}
}
我是否缺少某些東西,因為在調試我的應用程序時,該程序甚至沒有在onClick方法中停止。
覆蓋onClick()是正確的,並且您的MainActivity可以正確實現OnClickListener。
您只需要注冊每個按鈕。 例如:
Button goButton = (Button) findViewById(R.id.buttonGo);
goButton.setOnClickListener(this);
您必須將視圖的偵聽器設置為活動。 因此,應該是這樣的:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
View btnCheck = findViewById(R.id.btnCheck);
btnCheck.setOnClickListener(this);
View btnViewAllViolations = findViewById(R.id.btnViewAllViolations);
btnViewAllViolations.setOnClickListener(this);
View btnSettings = findViewById(R.id.btnSettings);
btnSettings.setOnClickListener(this);
}
您需要findViewbyId
您的按鈕和setOnClickListener
他們。
范例:
btnCheck = (Button) findViewById(R.id.btnCheck);
btnCheck.setOnClickListener(this);
最后在onCreate
方法中添加以下行。
創建Button
對象,將findViewbyId
和setOnClickListener
到該對象
Button b1 = (Button) findViewById(R.id.btnCheck);
Button b2 = (Button) findViewById(R.id.btnViewAllViolations);
Button b3 = (Button) findViewById(R.id.btnSettings);
b1 .setOnClickListener(this);
b2 .setOnClickListener(this);
b3 .setOnClickListener(this);
您需要將Button
聲明為setOnClickListener
。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button btnCheck=(Button)findViewById(R.id.btnCheck1);
Button btnViewAllViolations=(Button)findViewById(R.id.btnViewAllViolations1);
Button btnSettings=(Button)findViewById(R.id.btnSettings1);
//Where btnCheck1,btnViewAllViolations1,btnSettings1 are ids in xml;
btnCheck.setOnClickListener(this);
btnViewAllViolations.setOnClickListener(this);
btnSettings.setOnClickListener(this);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.