2014-12-06 76 views
0

在我的應用程序中,我有一個3按鈕的簡單活動,爲了不爲每個按鈕設置單獨的OnClickListener,我決定在我的活動中實現它,但它不起作用。如何在活動中實現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方法停車時調試我的應用程序。

+0

發佈您的佈局xml文件,即activity_main.xml – Amy 2014-12-06 11:26:59

回答

1

您必須將視圖的偵聽器設置爲活動。所以,它應該是這樣的:

@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); 
} 
1

您需要findViewbyId您的按鈕和setOnClickListener他們。

例子:

btnCheck = (Button) findViewById(R.id.btnCheck); 
btnCheck.setOnClickListener(this); 
2

重寫的onClick()是正確的,你的MainActivity正確實現OnClickListener。

你只需要註冊每個按鈕。例如:

Button goButton = (Button) findViewById(R.id.buttonGo); 
goButton.setOnClickListener(this); 
1

最後在onCreate方法中添加以下行。

創建Button對象uning findViewbyIdsetOnClickListener到該對象

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); 
1

您需要聲明ButtonsetOnClickListener

@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); 
    } 
相關問題