java - 微调器的 OnItemClickListener

标签 java android xml android-layout android-spinner

我可以通过这种方式在操作栏中获取 Spinner; re/values/languages.xml 中的项目数组

 <string-array name="languages">
    <item>Finnish</item>
    <item>French</item>
    <item>German</item>
    <item>Slovakian</item>
    <item>Polish</item>
</string-array>

在 res/menu/main.xml 中

  <item
    android:id="@+id/menuSort"
    android:actionLayout="@layout/spinner"
    android:showAsAction="ifRoom"
    android:title="@string/choose"/>

在 res/layout/spinner.xml 中

<Spinner
    android:id="@+id/spinner"
    android:layout_width="150dp"
    android:layout_height="wrap_content" 
    android:entries="@array/languages"/>

最后是 Activity 课;

 public class Base_Activity extends Activity {

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.main, menu);
    final Spinner spinner = new Spinner(this);
    Log.i("DEBUG1", "CHECKPOINT1");
    ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(
            this, android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(spinnerArrayAdapter);
    Log.i("DEBUG2", "CHECKPOINT2");
    spinnerArrayAdapter.setDropDownViewResource(0);
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int arg2, long arg3) {

               String items=spinner.getSelectedItem().toString();
               Log.i("Selected item : ",items);
        }

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

        }

    });
    return true;
}

我没有得到的是在微调项的 ItemSelected 上没有任何反应。正如您从我的 xml 文件中看到的那样,我什至不需要适配器来获取微调器。但是我正在使用适配器来获取 OnItemSelected。请帮我看看这是怎么回事?

最佳答案

试试这个可能对你有帮助

@Override
    public boolean onCreateOptionsMenu(Menu menu) {
        getMenuInflater().inflate(R.menu.main, menu);
        final Spinner spinner = (Spinner) menu.getItem(0).getActionView().findViewById(R.id.spinner);
        spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {

            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {

                String items = spinner.getSelectedItem().toString();
                Log.i("Selected item : ", items);
            }

            @Override
            public void onNothingSelected(AdapterView<?> arg0) {

            }

        });
        return super.onCreateOptionsMenu(menu);
    }

关于java - 微调器的 OnItemClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21600781/

相关文章:

java - 测试是否与 double 相等

java - IntelliJ IDEA 15 无法识别 java.time

java - setMinimumFractionDigits(..) 详细信息。数字格式类

java - hibernate 延迟加载不起作用

安卓蓝牙 : get Device Specific AT commands

java - ActivityInstrumentationTestCase2 问题 - 由于我正在为其编写测试的代码中的 invalidate() 调用导致测试挂起

安卓 : Remove LocationListener

xml - 单个 XML 元素可以有多个值吗?

xml - 如何通过XML文件在Odoo数据库中引入Many2one字段值?

java - Spring 验证在来自 ServletContext 资源的 XML 文档中有错误