EditText etHomePhone = (EditText)findViewById(R.id.et_pi_home_phone);
EditText etMobilePhone = (EditText)findViewById(R.id.et_pi_home_phone);
etHomePhone.setOnClickListener(showPopUpClickListener);
etMobilePhone.setOnClickListener(showPopUpClickListener);
private View.OnClickListener showPopUpClickListener = new View.OnClickListener() {
public void onClick(View v) {
/* I like to get both EditText.getText().toString() value in this one ClickListener
is it Possible, there is something in ActionScript call event.currentTarget...
*/
}
};
답변
etHomePhone 및 etMobilePhone 변수를 final로 선언하고 동일한 메소드에서 OnClickListener 인라인을 정의하면 해당 변수를 직접 참조 할 수 있습니다. 그래서 같이 :
final EditText etHomePhone = (EditText)findViewById(R.id.et_pi_home_phone);
final EditText etMobilePhone = (EditText)findViewById(R.id.et_pi_home_phone);
View.OnClickListener showPopUpClickListener = new View.OnClickListener() {
public void onClick(View v) {
String home = etHomePhone.getText().toString();
String mobile = etMobilePhone.getText().toString();
// Do something with home and mobile
}
};
etHomePhone.setOnClickListener(showPopUpClickListener);
etMobilePhone.setOnClickListener(showPopUpClickListener);
편집 : 당신은 단지 대신 둘의 클릭 된 글고 치기에 대한 텍스트를 얻고 싶은 경우에, 당신은 그냥 온 클릭을 통해 제공하는보기를 캐스팅 할 수
(보기 V) :
public void onClick(View v) {
EditText editText = (EditText)v;
String phoneNumber = editText.getText().toString();
// Do something with phoneNumber
}
이는 조각, 그래서 문맥을 볼 수 있지만,이 활동의 모든 이벤트를 잡기 위해 하나의 OnClickListener를을 구성 할 수 있습니다. 활동의 위해,
yourObject.setOnClickListener(this);
다음을이 같은 클릭에 응답해야하는 각 UI 요소를 등록의에서 OnCreate() 메소드에서
public class YourActivity extends Activity implements OnClickListener {...
: 첫째, 당신의 활동은 OnClickListener를 인터페이스를 구현해야합니다 온 클릭() 메소드를 다음과 같이 R.id를 사용하여 스위치 구조를 만들 :
@Override
public void onClick(View view) {
switch(view.getId()){
case R.id.A_UI_Element:
//do what you need for this element
break:
case R.id.A_Different_UI_Element:
//do what you need for this element
break;
//continue with cases for each element you want to be clickable
}
}
각각의 경우의 끝에서 휴식을 잊지 마십시오.
코드에서 주목해야 할 것은 editText 선언이 모두 동일한 리소스를 참조한다는 것입니다. 이렇게하면 두 개의 다른 요소가 아닌 동일한 UI 요소에 두 개의 핸들이 제공됩니다.
답장을 보내 주셔서 감사합니다. 예, 내 editText는 잘못된 유형 인 실제로 동일한 자원을 참조합니다. – Demones
- 1. ClickListener 이벤트 사용 안 함
- 2. ClickListener 및 ListView 항목 레이아웃
- 3. CSS - DIV의 타겟 배경 이미지
- 4. 닷넷 플랫폼 타겟 최적화
- 5. MethodInterceptor에서 타겟 얻기
- 6. 권장 빌드 타겟
- 7. 타겟 URL을 얻는 방법?
- 8. Eclipse - 타겟 정의 문제
- 9. Ant에서 타겟 재정의
- 10. jeditable 동적 타겟 값
- 11. Ant의 에코 타겟 설명
- 12. 나는 이맥스에 적합한 타겟 유저인가?
- 13. OpenGL 다중 렌더 타겟 설정
- 14. ASIHTTPRequest를 사용하는 아이폰 배포 타겟
- 15. 안드로이드 타겟 API가 보이지 않습니다.
- 16. Html 타겟 속성이 지원되지 않음
- 17. Eclipse는 타겟 런타임을 계속 변경합니다.
- 18. 이클립스에서 리 타겟 동작 활성화
- 19. direct3d를 사용하여 타겟 링을 투영하십시오.
- 20. 앱 ipad에 대한 여러 타겟
- 21. Git Ignores 및 Maven 타겟
- 22. JS 테스트 대상 : 타겟 지원
- 23. 데이터 템플릿에 StoryBoard 타겟 설정
- 24. Android 프로젝트에서 타겟 빌드를 변경하는 방법은 무엇입니까?
- 25. Exec 플러그인의 바이너리 타겟 관리 개선
- 26. GCC 타겟 특이성 및 이진 호환성
- 27. 콰드로 타 타겟 추적 비행 패턴
- 28. Ant to Maven - 복수 빌드 타겟
- 29. jQuery ul 이벤트 타겟 - 실제로 이벤트 타겟 인 li을 찾을 수 있습니까?
- 30. gant 스크립트에서 (복수 어휘) grails 타겟 사용
죄송합니다. 나는 내가 원하는 것을 이해하지 못했을 것이라고 생각합니다. 나는 .... String home 또는 mobile =이 청취자를 지금 호출하고있는 EditText의 가치. – Demones
그냥 명확하게하기 위해, 나는 당신이 동시에 방법 내에서 둘 다 얻고 싶다고 생각. 클릭 한 텍스트 만 가져 오시겠습니까? 그렇다면 위의 게시물을 솔루션으로 편집했습니다. –
그게 내가 원하는 건 고마워요 :) 감사합니다 – Demones