2011-02-05 3 views
1
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... 
*/ 

      } 
     }; 

답변

0

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 
} 
+0

죄송합니다. 나는 내가 원하는 것을 이해하지 못했을 것이라고 생각합니다. 나는 .... String home 또는 mobile =이 청취자를 지금 호출하고있는 EditText의 가치. – Demones

+0

그냥 명확하게하기 위해, 나는 당신이 동시에 방법 내에서 둘 다 얻고 싶다고 생각. 클릭 한 텍스트 만 가져 오시겠습니까? 그렇다면 위의 게시물을 솔루션으로 편집했습니다. –

+0

그게 내가 원하는 건 고마워요 :) 감사합니다 – Demones

0

이는 조각, 그래서 문맥을 볼 수 있지만,이 활동의 ​​모든 이벤트를 잡기 위해 하나의 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 요소에 두 개의 핸들이 제공됩니다.

+0

답장을 보내 주셔서 감사합니다. 예, 내 editText는 잘못된 유형 인 실제로 동일한 자원을 참조합니다. – Demones