我已经实现了onitemclicklistener。我有3个autocompletetextview。我想获取从中点击autocompletetextview的id(在xml文件中使用的id)。我可以通过实现onitemselectedlistener并使用微调器来解决这个问题。但是如何通过实现onitemclicklistener和autocompletetextview而不是spinner来解决它。 PLZ帮帮我......这是正确的代码(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。 bt如何解决这个问题......
答案 0 :(得分:1)
您可以创建email,也可以通过这种方式创建an anonymous inner listener class which holds your whole onItemClick-code,将AutoCompleteTextView传递给onItemClick
函数。
E.g。你的代码看起来像这样:
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
}
}
a listener class which modifies the onItemClick call,您会找到Here
答案 1 :(得分:1)
public void onItemClick(AdapterView<?> parent, View v, int position,long id) {
if(parent.getAdpater()==yourAdapterInstance){
}
}
答案 2 :(得分:-1)
为什么不在onCreate方法中为每个AutoCompleteTextViews设置onClickListener?