Android:如何在 onItemClick 中获取 AutoCompleteTextView

标签 android autocompletetextview

我在单击列表中的值后尝试获取 AutoCompleteTextView 的 ID。尝试在 google 和 stackoverflow 上查找,但提供的答案无效。这是我得到的:

在我的类声明中创建 View :

public class ActivityCadastrarCliente extends Activity implements OnClickListener, OnItemClickListener {
    AutoCompleteTextView E_Nome_Cliente, E_CPF;
    List<String> Nomes = new ArrayList<String>();
    ...

将 View 关联到 XML 元素:

E_Nome_Cliente = (AutoCompleteTextView)findViewById(R.id.Nome_Cliente);
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, Nomes.toArray(new String[0]));
E_Nome_Cliente.setAdapter(adapter);
E_Nome_Cliente.setOnItemClickListener(this);

我的 onItemClick 方法通常调用如下:

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    //switch (parent.getId()) { 
        //case R.id.Nome_Cliente:
            ...

    //}
}

有人知道如何在 onItemClick 中访问此 View 吗?尝试了几种方法,但我只得到异常(exception):

//Class cast exception
AutoCompleteTextView input = (AutoCompleteTextView)view.getParent();
//Class cast exception
AutoCompleteTextView input = (AutoCompleteTextView)parent;
//Class cast exception
AutoCompleteTextView input = (AutoCompleteTextView)parent.getParent();

我需要确定点击了哪个 View ,因为我使用了 3 到 5 个 AutoCompleteTextView,并且我会根据所选的值自动填写一堆其他字段。

最佳答案

查看 this answer 中的类 AutoCompleteTextViewClickListener .

按以下方式更改您的 setOnItemClickListener 调用:

E_Nome_Cliente.setOnItemClickListener(
        new AutoCompleteTextViewClickListener(E_Nome_Cliente, this));

现在可以通过访问修改后的view参数来获取id了:

@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
    //view had been modified by AutoCompleteTextViewClickListener 
    //to contain the original AutoCompleteTextView
    switch (view.getId()) { 
        case R.id.Nome_Cliente:
            //...
    }
}

关于Android:如何在 onItemClick 中获取 AutoCompleteTextView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27767251/

相关文章:

java - Android 应用程序中的旋转 vector 传感器不适用于我的 Moto G

android - Multiautocompletetextview,仅当用户在 '@' 键之后按下一个键时才显示自动完成下拉列表(就像在 FB 应用程序中提到的那样)

android - AutoCompleteTextView、DropDown、setOnDismissListener、<17 api

android - flutter :无法构建android apk

android - Fragment 类、MVVM、Viewmodel 中未解析的引用(vars)

java - 关于在 Android 中扩展记事本教程的一个非常开放的、n00b 式的问题

database - 我可以在 Android 上为我自己的应用程序使用谷歌地图数据吗?

android - AutoCompleteTextView:在后按时删除软键盘而不是建议

android - 如何在 Android 中为 AutoCompleteTextView 设置多次点击监听器?

java - 如何使用Android Studio实现自动建议UI?