2011-02-05 58 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); 

編輯:

如果你只是想獲得點擊而不是兩者的EditText上的文本,那麼你可以只投它通過的onClick提供的視圖(View 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 2011-02-05 01:09:13

+0

只是爲了澄清,我以爲你想在同一時間在方法中得到他們兩個。你想只獲取被點擊的文字嗎?如果是這樣,我已經用解決方案編輯了我的帖子。 – 2011-02-05 01:18:04

0

這是一個片段,所以我不能看到上下文,但你可以構建一個OnClickListener趕上您的活動的所有事件。首先,你的活動將需要實現OnClickListener接口:

public class YourActivity extends Activity implements OnClickListener {... 

在OnCreate()方法,登記應響應點擊這樣每個UI元素:

yourObject.setOnClickListener(this); 

接下來,該活動的的onClick()方法,使用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元素的句柄,而不是兩個不同的元素。