从 onItemClick 确定 AutoCompleteTextView

Alo*_*mer 3 android textview

是否可以从回调 onItemClick 的参数中确定原始 AutoCompleteTextView?

我有以下回调函数,如果我点击 AutoCompleteTextView 的选择弹出窗口的一个项目,它会正确触发:

public void onItemClick(AdapterView<?> adaptView, View view, int position, 
        long id) {
}
Run Code Online (Sandbox Code Playgroud)

我知道,我可以实现自己的 per-textview 侦听器类,但是我想确定哪个 AutoCompleteTextView 仅从回调函数的参数启动了单击 - 这可能吗?

yon*_*joy 5

我对这个问题没有肯定的答案(我认为这是不可能的)。但我使用一种解决方法来达到相同的目标(AutoCompleteTextView从 onItemClick 中查找):

我定义了以下类,它可用于修改onItemClick调用以提供AutoCompleteTextView作为第二个参数(而不是原始View参数)。

public class AutoCompleteTextViewClickListener implements OnItemClickListener {
       AutoCompleteTextView mAutoComplete;
       OnItemClickListener mOriginalListener;

       public AutoCompleteTextViewClickListener(AutoCompleteTextView acTextView, 
               OnItemClickListener originalListener) {
           mAutoComplete = acTextView;
           mOriginalListener = originalListener;
       }

       public void onItemClick(AdapterView<?> adView, View view, int position,
               long id) {
           mOriginalListener.onItemClick(adView, mAutoComplete, position, id);
       }       
}
Run Code Online (Sandbox Code Playgroud)

这可以通过以下方式使用:

代替

myTextView.setOnItemClickListener(myListener);
Run Code Online (Sandbox Code Playgroud)

你必须写:

myTextView.setOnItemClickListener(
        new AutoCompleteTextViewClickListener(myTextView, myListener));
Run Code Online (Sandbox Code Playgroud)

现在,每当 onItemClicked 由 TextView 触发时,对 AutoCompleteTextView 的引用就可用,而不是原始视图值。