autocompletetextview和onitemclick

时间:2014-07-02 22:46:54

标签: android xml autocompletetextview onitemclicklistener

我已经实现了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如何解决这个问题......

3 个答案:

答案 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?