我有一个微调器,我有一个arraylist,其中包含我使用数组适配器设置到微调器的状态名称。我认为微调器的dropdown_item的布局存在一些问题,它采用的是样式该应用程序。由于我在项目中使用了材质,因此在这里应用了相同的样式。
项目可见也可选择项目,但下拉列表未正确显示
这就是我将我的arraylist设置为微调器的方式。
mArrayAdapter_userType = new ArrayAdapter<String>(RegistrationActivity.this, R.layout.spinner_text, aArrayList_userType);
mArrayAdapter_userType.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
mSpinner_userType.setAdapter(mArrayAdapter_userType);
答案 0 :(得分:1)
在build.gradle
文件
compile 'com.github.rey5137:material:1.2.2'
在Xml中编写此代码。
<com.rey.material.widget.Spinner
android:id="@+id/spinner_label"
style="@style/LightSpinner"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:minWidth="128dp"
android:padding="8dp"
app:spn_label="Spinner with arrow" />
在Java类中编写此代码。
Spinner spn_label = (Spinner) findViewById(R.id.spinner_label);
String[] items = new String[20];
for (int i = 0; i < items.length; i++) {
items[i] = "Item " + String.valueOf(i + 1);
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(MainActivity.this, R.layout.row_span, items);
spn_label.setAdapter(adapter);
在layout
文件夹中创建 row_span.xml 。
<?xml version="1.0" encoding="utf-8"?>
<com.rey.material.widget.TextView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:id="@+id/row_spn_tv"
android:layout_width="match_parent"
android:layout_height="48dp"
android:gravity="center_vertical"
android:paddingLeft="16dp"
android:paddingRight="16dp"
android:textDirection="locale"
style="@style/LightSpinner"/>
运行时,会生成以下输出。
有关详细信息,请访问:https://github.com/rey5137/material
将此内容写入xml
<Spinner
android:id="@+id/planets_spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
在资源文件中创建数组数据
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="planets_array">
<item>Mercury</item>
<item>Venus</item>
<item>Earth</item>
<item>Mars</item>
<item>Jupiter</item>
<item>Saturn</item>
<item>Uranus</item>
<item>Neptune</item>
</string-array>
</resources>
在Java中使用它
Spinner spinner = (Spinner) findViewById(R.id.spinner);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.planets_array, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapter);