Android Studio:Spinner完全不显示项目。[XML / JAVA]

huangapple go评论144阅读模式
英文:

Android Studio: Spinner not showing items at all. [XML / JAVA]

问题

我无法使一个简单的安卓下拉列表(Spinner)工作。我在互联网上查看了很多示例,但没有一个适用于我。

以下是我在 XML 中所做的:

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
  3. xmlns:app="http://schemas.android.com/apk/res-auto"
  4. xmlns:tools="http://schemas.android.com/tools"
  5. android:id="@+id/linearLayout"
  6. android:layout_width="match_parent"
  7. android:layout_height="match_parent"
  8. android:layout_gravity="center">
  9. <Spinner
  10. android:id="@+id/spinner"
  11. android:layout_width="wrap_content"
  12. android:layout_height="wrap_content"
  13. android:spinnerMode="dropdown"
  14. android:theme="@style/ThemeOverlay.AppCompat.Light"
  15. app:layout_constraintBottom_toBottomOf="parent"
  16. app:layout_constraintEnd_toEndOf="parent"
  17. app:layout_constraintStart_toStartOf="parent"
  18. app:layout_constraintTop_toTopOf="parent" />
  19. </android.support.constraint.ConstraintLayout>

在我的 Java 类中:

  1. public class PreferencesActivity extends AppCompatActivity {
  2. Spinner spinner;
  3. @Override
  4. public void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.preferences);
  7. spinner = (Spinner) findViewById(R.id.spinner);
  8. ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.language_list, android.R.layout.simple_spinner_item);
  9. adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  10. spinner.setAdapter(adapter);
  11. }
  12. @Override
  13. public void onResume(){
  14. super.onResume();
  15. setContentView(R.layout.preferences);
  16. }
  17. }

在我的 XML 资源文件中:

  1. <resources>
  2. <string-array name="language_str">
  3. <item>Language</item>
  4. <item>Langue</item>
  5. <item>Lingua</item>
  6. <item>Idioma</item>
  7. </string-array>
  8. <string-array name="language_list">
  9. <item>English</item>
  10. <item>Francais</item>
  11. <item>Italiano</item>
  12. <item>Espanol</item>
  13. </string-array>
  14. </resources>

当我调试我的应用程序(使用真实设备)时,下拉列表(Spinner)根本不显示,就好像代码从未执行过。我阅读了关于“更改下拉列表背景颜色”的内容,但似乎没有任何反应。我尝试在 XML 文件中插入关键词“entries”,但没有任何效果。

问题可能出在哪里?我做错了什么?
谢谢,
Marco。

英文:

I'm not able to make work a simple android spinner. I followed many examples on internet but no one works for me.

Here is what I've done in xml:

  1. &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;
  2. &lt;android.support.constraint.ConstraintLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot;
  3. xmlns:app=&quot;http://schemas.android.com/apk/res-auto&quot;
  4. xmlns:tools=&quot;http://schemas.android.com/tools&quot;
  5. android:id=&quot;@+id/linearLayout&quot;
  6. android:layout_width=&quot;match_parent&quot;
  7. android:layout_height=&quot;match_parent&quot;
  8. android:layout_gravity=&quot;center&quot;&gt;
  9. &lt;Spinner
  10. android:id=&quot;@+id/spinner&quot;
  11. android:layout_width=&quot;wrap_content&quot;
  12. android:layout_height=&quot;wrap_content&quot;
  13. android:spinnerMode=&quot;dropdown&quot;
  14. android:theme=&quot;@style/ThemeOverlay.AppCompat.Light&quot;
  15. app:layout_constraintBottom_toBottomOf=&quot;parent&quot;
  16. app:layout_constraintEnd_toEndOf=&quot;parent&quot;
  17. app:layout_constraintStart_toStartOf=&quot;parent&quot;
  18. app:layout_constraintTop_toTopOf=&quot;parent&quot; /&gt;
  19. &lt;/android.support.constraint.ConstraintLayout&gt;

And here in my java class:

  1. public class PreferencesActivity extends AppCompatActivity {
  2. Spinner spinner;
  3. @Override
  4. public void onCreate(Bundle savedInstanceState) {
  5. super.onCreate(savedInstanceState);
  6. setContentView(R.layout.preferences);
  7. spinner = (Spinner) findViewById(R.id.spinner);
  8. ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.language_list, android.R.layout.simple_spinner_item);
  9. adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  10. spinner.setAdapter(adapter);
  11. }
  12. @Override
  13. public void onResume(){
  14. super.onResume();
  15. setContentView(R.layout.preferences);
  16. }
  17. }

And here in my xml res/string:

  1. &lt;resources&gt;
  2. &lt;string-array name=&quot;language_str&quot;&gt;
  3. &lt;item&gt;Language&lt;/item&gt;
  4. &lt;item&gt;Langue&lt;/item&gt;
  5. &lt;item&gt;Lingua&lt;/item&gt;
  6. &lt;item&gt;Idioma&lt;/item&gt;
  7. &lt;/string-array&gt;
  8. &lt;string-array name=&quot;language_list&quot;&gt;
  9. &lt;item&gt;English&lt;/item&gt;
  10. &lt;item&gt;Francais&lt;/item&gt;
  11. &lt;item&gt;Italiano&lt;/item&gt;
  12. &lt;item&gt;Espanol&lt;/item&gt;
  13. &lt;/string-array&gt;
  14. &lt;/resources&gt;

When I debug my application (with real device), the spinner is not shown at all, like as the code never executes.
I read about "change the background color" of the spin but nothing seems to happen. I tried iserting the key-word "entries" in xml file but nothing happens.

What could be the problem? Where am I wrong?
Thanks,
Marco.

答案1

得分: 1

从onResume()方法中删除以下行将解决您的问题:

  1. setContentView(R.layout.preferences);
英文:

Removing the following line from onResume() method will solve your problem

  1. setContentView(R.layout.preferences);

答案2

得分: 0

使用以下替代:

  1. ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.language_list, android.R.layout.simple_spinner_item);
英文:

Replace this line:

  1. ArrayAdapter adapter = ArrayAdapter.createFromResource(this, R.array.language_list, android.R.layout.simple_spinner_item);

With this:

  1. ArrayAdapter&lt;CharSequence&gt; adapter = ArrayAdapter.createFromResource(this, R.array.language_list, android.R.layout.simple_spinner_item);

huangapple
  • 本文由 发表于 2020年8月4日 21:05:47
  • 转载请务必保留本文链接:https://go.coder-hub.com/63247558.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定