2010-06-09 81 views
1
  • 我有一个包含了几个小工具的XML配置文件包括微调
  • 我想显示的微调字符串列表,在运行时生成的列表作为函数的结果,因此不能在arrays.xml中。

我试着这样做:如何使用Spinner.setAdapter在Spinner中显示字符串数组?

String[] SpinnerItems = GetMyCustomItems(); 

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

但这种崩溃我的应用程序。

完成此操作的正确方法是什么?

+0

您可以发布它在logcat中打印出错误堆栈? – m6tt 2010-06-09 09:52:04

回答

3

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

它看起来像您正在实现微调和适配器时错过了几件事情

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

我不想使用ArrayAdapter.createFromResource,因为我想要显示的数据(字符串)不在数组资源中,而是来自函数的结果。这个例子并不适用于我的情况。 – Mervin 2010-06-09 10:20:46

+0

好吧,你不需要使用createFromResource来实例化你的ArrayAdapter,但你应该使用android.R.layout.simple_spinner_item而不是android.R.layout.simple_list_item_1,你需要将setDropDownViewResource设置为android.R.layout.simple_spinner_dropdown_item – m6tt 2010-06-09 10:28:09

+0

我现在使用这个构造函数“public ArrayAdapter(Context context,int resource,int textViewResourceId,List objects)”with android.R.layout.simple_spinner_item,android.R.layout.simple_spinner_dropdown_item(也尝试切换这2个,仍然是这样 – Mervin 2010-06-09 10:50:17