1

我已经多次查看我的代码并尝试了不同的“解决方案”,显然它们都没有奏效。问题是当一个项目被点击时,监听器永远不会被触发。我发现当单击一个项目时,它会出现在 Logcat 中:

窗口已经聚焦,忽略焦点增益:com.android.internal.view.IInputMethodClient$Stub$Proxy@40683498

Spinner 是在 Button 触发的函数中动态创建的。

代码 :

public void showFilterCountries(View v){

     Spinner country_list=new Spinner(this);

     ArrayAdapter<String> adapter= new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, countries);
     adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
     country_list.setAdapter(adapter);
     country_list.setPrompt("Select a country");

     country_list.setOnItemSelectedListener(new OnItemSelectedListener() {
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int pos, long arg3) {
                Log.d("","selected");                   
            }

            public void onNothingSelected(AdapterView<?> arg0) {
                Log.d("","none selected");
            }
        });

     country_list.performClick();
    }
4

2 回答 2

1

我解决了使用 AlertDialog.Builder 而不是 Spinner (这是正确的方法),如下所示:

https://stackoverflow.com/a/7635966/1181261

于 2012-06-05T17:02:50.093 回答
0

我刚刚经历了这个,我有一个微调器无法工作。问题是它在一个实现 AdapterView.OnItemSelectedListener 的片段中,问题是它也在实现 AdapterView.OnItemSelectedListener 的活动中,问题是活动总是捕获事件,所以我不得不把我的逻辑放在片段,并让活动调用片段方法。

TL:DR,如果您的 onItemSelected 从未被调用,它可能是活动,或者另一个监听器正在捕获它,显然 Android 只喜欢监听 onItemSelected 的一件事。

于 2014-11-20T18:57:03.487 回答