Android Spinner单击时不显示项目

时间:2019-04-29 18:03:01

标签: android android-spinner

我正在尝试创建动态微调器(combobox),但是我无法使其工作,它显示了微调器中的第一项,但是当我单击它时,其他项的列表未显示并没有任何反应。

我的活动xml:

   <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_marginTop="80dp"
        android:layout_marginLeft="8dp"
        android:layout_marginRight="8dp"
        android:orientation="horizontal">

        <TextView
            android:layout_height="wrap_content"
            android:layout_width="wrap_content"
            android:text="@string/global_languages"/>

        <Spinner
            android:id="@+id/localesSpinner"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:popupBackground="@color/facebookBlue"
            android:clickable="true"/>

    </LinearLayout>

我正在尝试通过以下方式设置项目:

private void loadLocalesSuccess(Collection<String> locales){
        Spinner localesSpinner = (Spinner) findViewById(R.id.localesSpinner);
        ArrayAdapter adapter = new ArrayAdapter<>(this,  android.R.layout.simple_spinner_item, new ArrayList(locales));
        adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        localesSpinner.setAdapter(adapter);
        adapter.notifyDataSetChanged();

    }

可能是什么问题?

1 个答案:

答案 0 :(得分:0)

此代码段应正常工作,请检查数据是否正确。

    ArrayList<String> locales = new ArrayList<>();
    locales.add("English");
    locales.add("French");

    Spinner localesSpinner = findViewById(R.id.localesSpinner);
    ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_spinner_item, locales);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    localesSpinner.setAdapter(adapter);
    adapter.notifyDataSetChanged();