2012-11-25 4 views
2

나는 보통 코드를 추가 할 수 있습니다 왜하나 개의 버튼은 여러 ClickListeners

Button button1 = (Button)findViewById(R.id.start1); 
    button1.setOnClickListener(mStart1Listener); 
    Button button2 = (Button)findViewById(R.id.start2); 
    button2.setOnClickListener(mStart2Listener); 

그러나 안드로이드 샘플에서, 나는 그들 사이의 차이, 왜 하나 개의 버튼이 할 수있는 무엇 ServiceStartArgumentsController.java

protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 

    setContentView(R.layout.service_start_arguments_controller); 

    // Watch for button clicks. 
    Button button = (Button)findViewById(R.id.start1); 
    button.setOnClickListener(mStart1Listener); 
    button = (Button)findViewById(R.id.start2); 
    button.setOnClickListener(mStart2Listener); 
    button = (Button)findViewById(R.id.start3); 
    button.setOnClickListener(mStart3Listener); 
    button = (Button)findViewById(R.id.startfail); 
    button.setOnClickListener(mStartFailListener); 
    button = (Button)findViewById(R.id.kill); 
    button.setOnClickListener(mKillListener); 
} 

이러한 발견 여러 개의 ClickListener 추가

답변

2

그들 사이의 차이점은 무엇이며 하나의 버튼으로 여러 개의 ClickList를 추가 할 수있는 이유는 무엇입니까? ener

보기에는 하나의 OnClickListener 만있을 수 있습니다.

Button button = (Button)findViewById(R.id.start1); 
button.setOnClickListener(mStart1Listener); 
button = (Button)findViewById(R.id.start2); // This one 

그것은 다음 OnClickListener를 할당됩니다 새로운 버튼과 새로운 버튼 button의 이전 값을 오버라이드 (override) : 두 번째 방법은 바로 다시 사용하는 변수 button, 세 번째 줄을 알 수 있습니다.

0

그건 하나의 버튼이 아닙니다. 각 setOnClickListener 전에 변경됩니다. 이 코드는 해당 활동의 여러 버튼에 대해 하나의 변수 만 사용합니다.