AutoCompleteTextView onItemSelectedListener不起作用

Kar*_*ren 31 java android

我有AutoCompleteTextView并为它设置onItemSelectedListener,这不起作用.你知道这是什么问题吗?这是我的活动,如果需要,我还可以提供main.xml文件

   package com.chidem;

    import android.app.Activity;
    import android.app.AlertDialog;
    import android.os.Bundle;
    import android.util.Log;
    import android.view.View;
    import android.widget.AdapterView;
    import android.widget.AdapterView.OnItemSelectedListener;
    import android.widget.ArrayAdapter;
    import android.widget.AutoCompleteTextView;

    public class ChidemActivity extends Activity implements OnItemSelectedListener{
        /** Called when the activity is first created. */
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.main);
            String hop[]=new String[]{
                    "Karen","Mika","Gevor"
            };

            AutoCompleteTextView searchHotels = (AutoCompleteTextView) findViewById(R.id.autoSearch);
            searchHotels.setOnItemSelectedListener(this);

            ArrayAdapter<String> adapter1 = new ArrayAdapter<String>( this, R.layout.list_item, hop);
            searchHotels.setAdapter(adapter1);

        }


        public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2,
                long arg3) {
            Log.d("autocomplete", "itemselected");

        }

        public void onNothingSelected(AdapterView<?> arg0) {
            // TODO Auto-generated method stub

        }
    }
Run Code Online (Sandbox Code Playgroud)

Sha*_*dne 78

伙计,你会嘲笑你的错误.它为我工作.你添加了OnItemSelectedListener而不是OnItemClickListener.

只有选择项目或使用轨迹球或向上/向下箭头浏览视图时,您的方法才有效.在字符串中再使用一个值,以"k"开头,例如Karen1.输入"k"并在Karen和Karen之间选择.你会发现它有效.如果要单击,则添加OnItemClickListener并覆盖

public void onItemClick(AdapterView<?> arg0, View arg1,
                        int arg2, long arg3)
Run Code Online (Sandbox Code Playgroud)

  • 您应该选择这个作为正确的答案..这样其他查看此链接的人就会知道问题是什么? (2认同)
  • 我也笑了,愚蠢的错误,但正如我们所见,很多人对此感到困惑。 (2认同)

小智 9

你必须使用

OnItemClickListener

而不是OnItemSelectedListener


Him*_*ani 7

看起来,最近,真正的问题可能不在所问问题的代码中,而是在类AutoCompleteTextView本身的源代码中。

尽管类通过方法AutoCompleteTextView设置它,但类中没有任何地方调用任何侦听器方法。因此监听器仍然未被使用。(开发人员最了解的原因!)OnItemSelectedListenersetOnItemSelectedListener

源代码在这里:https://android.googlesource.com/platform/frameworks/base/+/refs/heads/master/core/java/android/widget/AutoCompleteTextView.java

因此,替代方法是使用OnItemClickListener.