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

EDIT:あなただけの代わりに、それらの両方をクリックしたのEditTextのテキストを取得したい場合、あなたはそれがのonClickを介して配信することをビューをキャストすることができ

(ビューV):

public void onClick(View v) { 
    EditText editText = (EditText)v; 
    String phoneNumber = editText.getText().toString(); 
    // Do something with phoneNumber 
} 
+0

申し訳ありませんが、私はあなたが私が欲しいものを理解していないと思う、私は何かをしたい....文字列の家庭やモバイル=今このリスナーを呼び出すEditTextの値。 – Demones

+0

明確にするために、私はあなたが同時に両方のメソッドをメソッド内に入れたいと思っていました。クリックされたテキストのみのテキストを取得しますか?もしそうなら、上記の私の記事を解決しました。 –

+0

thats私が欲しかったことは、ありがとう:) – Demones

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宣言が同じリソースを参照していることです。これは2つの異なる要素ではなく、同じUI要素に対して2つのハンドルを与えます。

+0

お返事ありがとう、はい私のeditTextは、ミスタイプであって実際にはそうでないものと同じリソースを参照しています。 – Demones

関連する問題