0

我有两个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) {       }
};

我已经检查过了,一个可能的解决方案是在这个问题中,但我正在寻找任何类似的属性EditText gotEditField = (EditText)v.targetEditField;

有没有这样的财产?

4

3 回答 3

1

使用switch case, in onClick()with 参数View vusingv.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
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 回答
0

View v来自您onCLick方法中的参数的是被点击的视图。

EditText gotEditField = (EditText) v;
于 2012-09-17T12:41:12.720 回答