【问题标题】:How can I display an array of Strings in a Spinner with Spinner.setAdapter?如何使用 Spinner.setAdapter 在 Spinner 中显示字符串数组?
【发布时间】:2011-03-01 14:06:38
【问题描述】:
  • 我有一个 xml 布局文件,其中包含一些小部件,包括 Spinner
  • 我想在微调器中显示一个字符串列表,该列表是在运行时作为函数的结果生成的,因此它不能在 arrays.xml 中。

我试过了:

String[] SpinnerItems = GetMyCustomItems();

((Spinner)findViewById(R.id.MySpinner)).setAdapter(new ArrayAdapter<String>(getBaseContext(), android.R.layout.simple_list_item_1,SpinnerItems));

但这会使我的应用程序崩溃。

实现此目的的正确方法是什么?

【问题讨论】:

  • 你能把它在 logcat 中打印出来的错误堆栈贴出来吗?

标签: java android arrays spinner


【解决方案1】:

看看这个例子 http://d.android.com/resources/tutorials/views/hello-spinner.html

在实现 Spinner 和适配器时,您似乎遗漏了几件事

Spinner spinner = (Spinner) findViewById(R.id.spinner);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(
        this, R.array.planets_array, android.R.layout.simple_spinner_item);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(adapter);

【讨论】:

  • 我不想使用 ArrayAdapter.createFromResource 因为我想要显示的数据(字符串)不在数组资源中,而是在函数的结果中。这个例子不适用于我的情况。
  • 好的,你不需要使用 createFromResource 来实例化你的 ArrayAdapter 但你应该使用 android.R.layout.simple_spinner_item 而不是 android.R.layout.simple_list_item_1 并且你需要将 setDropDownViewResource 设置为 android .R.layout.simple_spinner_dropdown_item
  • 我现在将这个构造函数“public ArrayAdapter (Context context, int resource, int textViewResourceId, List objects)”与 android.R.layout.simple_spinner_item ,android.R.layout 一起使用。 simple_spinner_dropdown_item (也尝试切换那些 2 ,但它仍然使我的应用程序崩溃。
  • 你能不能把你打印到logcat的错误堆栈贴出来,不然我只能猜测是什么问题。尝试使用 ArrayAdapter(Context context, int textViewResourceId, T[] objects) 因为我认为您需要调用 setDropDownViewResource 而不是在构造函数中设置资源。
  • 据我所知,控制台/LogCat 选项卡没有列出任何有关错误的信息,而且 setDropDownViewResource 在 Spinner 类上似乎不可用。
猜你喜欢
  • 2017-02-02
  • 2016-09-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-02-28
  • 1970-01-01
相关资源
最近更新 更多