0

2 つの editTextField があり、両方に同じリスナーがアタッチされています。リスナーでどれがクリックされたかをどのように把握しますか?

inputStart = (EditText)findViewById(R.id.editText3);
inputStart.setOnClickListener(TimePickerButtonOnClickListener);

inputEnd = (EditText)findViewById(R.id.editText4);
inputEnd.setOnClickListener(TimePickerButtonOnClickListener);

private Button.OnClickListener TimePickerButtonOnClickListener = new Button.OnClickListener() {         
     public void onClick(View v) {       }
};

私はチェックしました、1つの可能な解決策はこの質問にありますが、私は次のようなプロパティを探していますEditText gotEditField = (EditText)v.targetEditField;

そのようなプロパティは存在しますか?

4

3 に答える 3

1

switch caseを使用しonClick()、パラメーターView vを使用してv.getId()

private Button.OnClickListener TimePickerButtonOnClickListener = new Button.OnClickListener()
{           
  public void onClick(View v) { 
       switch(v.getId){
         case R.id.editText3:
         break;
         .
         .
         .
       }
};

また、パラメータを Type Casting してEditTextのオブジェクトを取得することもできます。View v

お気に入りEditText editText = (EditText)v;

于 2012-09-17T12:40:34.083 に答える
0

View vメソッドのパラメーターからは、onCLickクリックされたビューです。

EditText gotEditField = (EditText) v;
于 2012-09-17T12:41:12.720 に答える
0
public void onClick(View v) 
{
    int id= v.getId();

    switch (id) 
    {
        case R.id.editText3:  
        break;

        case R.id.editText4:    
        break;
    }
}
于 2012-09-17T12:39:38.053 に答える