두 개의 onClickListeners, A와 B 및 일부 버튼이 할당되어 있다고 가정 해 보겠습니다. onClickListener A에 "속한"각 클릭 된 버튼에 대해 다음 버튼을 클릭 할 때까지 기다리는 방법이 있습니까? 그리고 onClickedListener B에서 그 다음에 어떤 코드를 수행하는 경우 중요하지 않습니다. onClickListener A에서 온 것입니다. 놔두고 아무것도하지 말고 다음 클릭을 기다리고 이전 버튼처럼 기다리십시오.두 개의 onClickListener와 그들 사이의 상호 작용
0
A
답변
0
좋아, 그럼 내 질문에 대한 답을 편집했습니다. 그것이 의미가 있으면 알려주세요. 나는 당신을 위해 일하지 않을 것입니다, 그래서 이것은 당신에게 논리가 무엇인지 보여주는 간단한 예입니다.
//This is how you set the TAG so you have it. But I know you use getTag, so I am not sure
//what you are using it for.
a1 = (Button) findViewById(R.id.bA1);
a2 = (Button) findViewById(R.id.bA2);
b1 = (Button) findViewById(R.id.bB1);
b2 = (Button) findViewById(R.id.bB2);
a1.setTag("A");
a2.setTag("A");
b1.setTag("B");
b2.setTag("B");
View.OnClickListener listener = new View.onClickListener() {
public void onClick(View view) {
String tag = (String)view.getTag();
if(tag.equals("A")
//example on one B button with assumed TAG of "B"
someButton.setOnClickListener(listener);
//deregister all your A Views, but again, I'll do one as an example
//in this case I'll quickly just deregister the A button or view just clicked
view.setOnClickListener(null);
else
if(tag.equals("B")) {
/*I guess do your thing here but deregister all the B views again
and register all the A views again*/
someButton.setOnClickListener(null);
otherAButton.setOnClickListener(listener);
}
}
});
그래서 코드를 줄이기 위해 몇 가지 가정을합니다. 예를 들어. A View
을 "A"
태그로 설정하고 setTag
방법을 사용하고 그 반대의 경우 B View
으로 설정하십시오. 또한 클릭 수를 듣기 시작하는 A보기를 원한다고 가정합니다. 따라서 활동 또는 단편이 처음 실행될 때 setOnClickListener
을 통해 listener
을 A보기로 설정하면됩니다.
관련 문제
- 1. 두 개의 루프와 상호 작용
- 2. 소프트웨어 디자인 - 두 클래스 사이의 상호 작용
- 3. 두 개체의 상호 작용 사이의 디자인 패턴
- 4. 블루투스와 컴퓨터 사이의 상호 작용
- 5. C와 R 사이의 상호 작용
- 6. 두 클래스의 상호 작용
- 7. 두 프로젝트와 그들 사이의 참조
- 8. jQuery에서 라디오와 select 사이의 상호 작용
- 9. F #과 C# lambda 사이의 상호 작용
- 10. jdom과 ssis 사이의 이상한 상호 작용
- 11. php와 java webservice 사이의 상호 작용 방법
- 12. __setitem__과 __get__ 사이의 이상한 상호 작용
- 13. robots.txt와 메타 로봇 태그 사이의 상호 작용
- 14. xAxis와 텍스트 사이의 d3 상호 작용
- 15. 그들 사이의 최대 문자 수를 가진 두 개의 문자열 찾기
- 16. 두 개의 JFrames 연결 및 그들 사이의 정보 전달
- 17. 상호 작용 서비스와 상호 작용 요청 객체
- 18. 2 개의 웹 페이지 간 상호 작용?
- 19. 웹 사이트와의 상호 작용
- 20. iOS 전달 상호 작용
- 21. 상호 작용
- 22. 상호 작용
- 23. 상호 작용
- 24. 상호 작용
- 25. 상호 작용
- 26. 상호 작용
- 27. 두 개의 연속 변수와 lme4 데이터의 상호 작용 플로팅
- 28. 두 개의 드롭 다운 목록이 서로 상호 작용 함
- 29. 두 개의 출력 변수 사이에 반짝이는 상호 작용
- 30. 병렬 뷰의 상호 작용
[이 링크 확인하기] (http://stackoverflow.com/questions/15754577/how-to-disable-interaction-between-buttons-of-the-same-layout) 어쩌면 왜 그런지 알게 될 것입니다. 나는 이것을 물었다. 제가 당신에게 준 링크에서, 제 문제에 대한 해결책을 찾으려고했으나, 제가 여기서 물었던 것처럼 이것을하려고 노력하지 않았습니다. – marjanbaz
오, 이런 경우 A 뷰의 리스너 값을 null로 설정하여 등록을 취소 할 수 있습니다. 따라서 A 값을 클릭하면 B 뷰를 등록하고 A 뷰의 등록을 취소합니다. 위의 예를 통해 간단한 예를 들어 보겠습니다. – Andy
좋아요, 끝나면 알려주세요. 고마워. 나는 지난 달과 행운을 위해 이것을 끝내려고 노력하고있다. – marjanbaz