我已经实现了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
.