2016-05-31 2 views
0

문제는 다음과 같습니다 ... 나는 버튼과 그 주위에 몇 가지 물건으로 클래스를 만들었습니다. 이제 개체를 만들어이 단추를 화면에 추가 할 수 있습니다. 예 :안드로이드에서 같은 클래스의 모든 버튼에 대한 개별 onclick

FloatingButton button = new FloatingButton(); 

나는이 작업을 내 주요 활동에서 3 번했습니다. 따라서 지금은 3 개의 버튼이 있습니다. 문제는 각각의 버튼에 다른 onclick 이벤트를 추가하고 싶다는 것입니다. 따라서 FloatingButton 클래스에 onclick 이벤트를 추가하면 모든 Button이 동일한 작업을 수행합니다. 그래서 주요 활동에서 onclick 이벤트를 설정해야합니다. 그게 가능하니?

+0

View.OnClickListener라는 인터페이스로 전체 페이지에서 클릭 피쳐를 구현하는 데 사용되며이 클릭 피쳐 내에서 버튼을 얻을 수 있습니다. –

답변

1

setOnClickListener을 사용하면 액세스 권한이있는 곳에서 버튼에 직접 클릭 수신기를 추가 할 수 있습니다. 따라서 귀하의 경우에는 활동의 각 단추를 인스턴스화 한 후에 청취자를 추가 할 수 있습니다.

예 :

button.setOnClickListener(new View.OnClickListener() { 
       @Override 
       public void onClick(View v) { 

       } 
      }) 
0

당신은 한 번의 클릭 리스너를 계속 사용 할 수 있으며 뷰의 ID를 확인할 수 있습니다.

final OnClickListener listener = new View.OnClickListener() { 

    @Override 
    public void onClick(View v) { 
    switch (v.getId()){ 
     case R.id.button_1: 
     doButtonOne() 
     break; 
     case R.id.button_2: 
     doButtonTwo() 
     break; 
     ... 
    } 
    } 
}; 
0

버튼을 만들 때 다르게 이름을 지었습니까?

FloatingButton buttonYes = new FloatingButton(); 
FloatingButton buttonNo = new FloatingButton(); 

그리고 나서 버튼 누름에서 실행하려는 코드로 만든 버튼마다 setOnClickListener를 사용하십시오.

buttonYes.setOnClickListener(...) 
buttonNo.setOnClickListener(...) 

이렇게하면 다른 버튼을 눌러 다른 결과를 낼 수 있습니다.

관련 문제