安卓系统,下拉菜单选项未显示。

3

这是我的代码,但我无法将项目添加到Spinner中。我不知道出了什么问题,并且找不到其他方法!

Java:

 spinner = (Spinner)getView().findViewById(R.id.spinner);

 String[] datos = getResources().getStringArray(R.array.items);

 ArrayAdapter<String> adaptador = new ArrayAdapter<String>(getActivity(),
            android.R.layout.simple_spinner_item, datos);
adaptador.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

 spinner.setAdapter(adaptador);

XML:

<Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/spinner"
        android:layout_margin="26dp"
        android:textColor="#FFF"/>

strings.xml:

<string-array name="items">
    <item >Item 1</item>
    <item >Item 2</item>
    <item >Item 3</item>
    <item >Item 4</item>
</string-array>

感谢您提前的帮助。

你有什么问题?选项在下拉列表中没有显示出来吗? - rafsanahmad007
是的,项目在下拉菜单中没有显示。 - user3139428
@user3139428,你的代码没有问题,应该可以正常工作... 你能否添加更多的Java代码以进一步检查? - Ali Noureddine
我在我的项目中检查了你的代码。它运行得很好。 - Dharmbir Singh
在我的情况下,这是因为活动的主题,尝试更改一下。 - Shreyansh jain
4个回答

7

您的加载图标文本颜色为白色:请将其更改为其他颜色。

<Spinner
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/spinner"
    android:layout_margin="26dp"
    android:textColor="#000000"/>  //change this

你也可以直接在布局中访问数组资源。例如:

android:entries="@array/items" //add this in your spinner layout

编辑

你可以尝试为您的下拉框项目使用自定义布局:

<TextView
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:textSize="20sp"
    android:gravity="left"
    android:background="#000000"  //dark background
    android:text="Test"
    android:textColor="#ffffff"  //white text
    android:padding="5dp"
    />

使用以下方式应用布局:

ArrayAdapter<String> adaptador = new ArrayAdapter<String>(getActivity(),
        R.layout.spinner_item, datos);

这里的 R.layout.spinner_item 是Spinner自定义布局。


好的,非常感谢。我注意到了问题,旋转器无法识别白色,并且我的背景是深灰色。 我该如何将文本设置为白色? - user3139428

2
在我的情况下,只需在XML文件中添加一些填充即可。
<Spinner android:id="@+id/spinnerMuestreo"
      android:layout_toEndOf="@+id/textViewNumMuestreo"
      android:layout_width="wrap_content"
      android:layout_height="wrap_content"
      android:padding="8dp" <!--Try adding this line. -->
/>

0

只试试这个 XML

<Spinner
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/spinner"
    android:layout_margin="26dp"
    android:textColor="@android:color/black"
    android:entries="@array/items"/>

从活动中删除以下内容

String[] datos = getResources().getStringArray(R.array.items);

 ArrayAdapter<String> adaptador = new ArrayAdapter<String>(getActivity(),
            android.R.layout.simple_spinner_item, datos);adaptador.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

 spinner.setAdapter(adaptador);

0
<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>

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);

在选定的项目上

 public class SpinnerActivity extends Activity implements OnItemSelectedListener {
...

public void onItemSelected(AdapterView<?> parent, View view,
        int pos, long id) {
    // An item was selected. You can retrieve the selected item using
    // parent.getItemAtPosition(pos)
}

public void onNothingSelected(AdapterView<?> parent) {
    // Another interface callback
}
 }

在此之前..

spinner.setOnItemSelectedListener(this);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接