2014-12-06 1 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; 
     } 
    } 
} 

내가 모르는 뭔가가 내 코드입니다.

+0

레이아웃 xml 파일 즉, activity_main.xml을 게시하십시오. – Amy

답변

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

당신은 당신의 버튼과 그들을 위해 setOnClickListenerfindViewbyId해야합니다.

예 : 온 클릭()를 재정의

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

은 권리와 MainActivity 올바르게 OnClickListener를 구현합니다.

각 버튼을 등록하기 만하면됩니다. 예 :

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

마지막으로 onCreate 방법에 다음 줄을 추가하십시오.

해당 개체 당신은 setOnClickListenerButton를 선언 할 필요가

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

findViewbyIdsetOnClickListener를 내부 튜닝 Button 객체를 생성합니다.

@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); 
    } 
관련 문제