是否可以从回调 onItemClick 的参数中确定原始 AutoCompleteTextView?
我有以下回调函数,如果我点击 AutoCompleteTextView 的选择弹出窗口的一个项目,它会正确触发:
public void onItemClick(AdapterView<?> adaptView, View view, int position,
long id) {
}
Run Code Online (Sandbox Code Playgroud)
我知道,我可以实现自己的 per-textview 侦听器类,但是我想确定哪个 AutoCompleteTextView 仅从回调函数的参数启动了单击 - 这可能吗?
我对这个问题没有肯定的答案(我认为这是不可能的)。但我使用一种解决方法来达到相同的目标(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 的引用就可用,而不是原始视图值。
| 归档时间: |
|
| 查看次数: |
1053 次 |
| 最近记录: |