AutocompleteTextView和onItemClick

3

我已经实现了OnItemClickListener。我有3个AutoCompleteTextView。我想要获取被点击的AutoCompleteTextView的ID(在XML文件中使用的ID)。我可以通过实现OnItemSelectedListener并使用Spinner来解决这个问题。但是,如何通过实现OnItemClickListener和AutoCompleteTextView而不是Spinner来解决它呢?请帮帮我...这里是正确的代码(使用OnItemSelectedListener和Spinner):

    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。但是如何解决呢......

将View v强制转换为AutoCompleteTextView,而不是将其强制转换为父级。 - Govind
3个回答

1
public void onItemClick(AdapterView<?> parent, View v, int position,long id) {
   if(parent.getAdpater()==yourAdapterInstance){
    }
 }

1
你可以创建一个匿名内部监听器类,它包含整个onItemClick代码,或者可以创建修改onItemClick调用的监听器类,以便将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
     }
}

这里, 你会找到关于AutoCompleteTextViewClickListener定义。


-1
为什么不在onCreate方法中为每个AutoCompleteTextView设置一个onClickListener呢?

我在我的onCreate方法中为每个AutoCompleteTextView设置了一个onClickListener,但我没有分享...一切都很好...我可以获取所选项目...但是如何在onItemClick方法中获取autocompletetextview的ID?@Vexman - Patriotic

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接