【问题标题】:Android, spinner items not showingAndroid,微调项目未显示
【发布时间】:2017-04-04 09:16:18
【问题描述】:

这是我的代码,我无法在 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>

提前感谢您的帮助。

【问题讨论】:

  • 您的问题是什么?项目未显示在微调器中?
  • 是的,spiner 中没有显示的项目
  • @user3139428 你的代码没有错误,它应该可以工作......你能添加更多的java代码来进一步检查吗?
  • 我在我的项目中检查了你的代码。它工作正常。
  • 在我的情况下是因为活动的主题,尝试改变它。

标签: java android string spinner items


【解决方案1】:

您的微调器文本颜色为白色:将其更改为其他颜色。

<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 是微调器自定义布局

【讨论】:

  • 好的,非常感谢我注意到了这个问题,微调器无法识别白色,而我的背景是深灰色。我怎样才能把文字变成白色?
【解决方案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. -->
/>

【讨论】:

    【解决方案3】:

    仅试用此 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);
    

    【讨论】:

      【解决方案4】:
      <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);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-08-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多