我已经实现了OnEmClickListener。我有3个自动完成的extview。我想获取单击AutoCompleteTextView的ID(XML文件中使用的ID)。我可以通过实现OnTimeSelectedListener和使用微调器来解决这个问题。但是,如何通过实现onitemclicklistener和autocompletetextview而不是spinner来解决这个问题。请帮帮我…下面是正确的代码(OnTimeSelectedListener和微调器):

    public void onItemSelected(AdapterView<?> parent, View v, int position,long id) {
     Spinner spinner = (Spinner) parent;

     if (spinner.getId() == R.id.spinner_select_bus){
        //stuff
 }
 }

这是我的错误代码:
public void onItemClick(AdapterView<?> parent, View v, int position,long id) {
     AutoCompleteTextView actv = (AutoCompleteTextView) parent;
     if (actv.getId() == R.id.spinner_select_bus){
        //stuff
 }
 }

我知道这是错误的方法,因为AdapterView无法强制转换为AutoCompleteTextView。怎么解决这个……

最佳答案

您可以创建an anonymous inner listener class which holds your whole onItemClick-code或以这样的方式创建a listener class which modifies the onItemClick call,以便将autocompletetextview传递给onItemClick函数。
例如,您的代码可能如下所示:

acTextView1.setOnItemClickListener(
    new AutoCompleteTextViewClickListener(acTextView1, this));
acTextView2.setOnItemClickListener(
    new AutoCompleteTextViewClickListener(acTextView2, this));
acTextView3.setOnItemClickListener(
    new AutoCompleteTextViewClickListener(acTextView3, this));


public void onItemClick(AdapterView<?> parent, View v, int position,long id) {
     //v had been modified by AutoCompleteTextViewClickListener
     //to contain the original AutoCompleteTextView
     AutoCompleteTextView actv = (AutoCompleteTextView) v;
     if (actv.getId() == R.id.actextview_select_bus){
        //stuff
     }
}

Here,您将找到definition of AutoCompleteTextViewClickListener.

10-07 19:15
查看更多