我想我现在发疯了。我正在尝试创建一个由数据表填充的微调器,但由于某种原因,下拉列表项文本未显示。我已经看了一遍,并看到其他帖子与人有同样的问题。谁能帮忙?
speciesList = (Spinner) findViewById(R.id.speciesList);
spinnerCursor = nsfdb.fetchAllSpecies();
startManagingCursor(spinnerCursor);
//String []cArrayList = new String[]{"dog", "cat", "horse", "other"};
String[] from = new String[]{"species"};
int[] to = new int[]{R.id.text1};
SimpleCursorAdapter locations = new SimpleCursorAdapter(this, R.layout.loc_row, spinnerCursor, from, to);
locations.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
speciesList.setAdapter(locations);
微调器创建得很好,并且填充了4个项目,但每当我点击微调器时,我看到4个没有文本的项目,只有radiobuttons。如果我选择其中任何一个,我将获得正确的选定项目值,但没有显示任何数据。
答案 0 :(得分:2)
当我尝试复制和粘贴代码以将ListView设置为Spinner时,我遇到了类似的问题。
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.array.location, android.R.layout.simple_list_item_1);
需要更改为
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.array.location, android.R.layout.simple_spinner_item);
我会尝试检查R.layout.loc_row中的布局设置,以确保它对光标数据有意义。
答案 1 :(得分:1)
我遇到了同样的问题并且正在使用:int[] to = new int[]{ R.id.text1};
我接受了
上述建议并将其更改为:int[] to = new int[]{ android.R.id.text1};
现在一切正常,谢谢!!
答案 2 :(得分:0)
fetchAllSpecies返回了哪些列?我相信你需要同时提供“_id”列和“种类”列。如果您只有一列,则可能正在使用该列,但它没有任何内容可用于文本。
我不确定这是否是您遇到的问题。我自己没有将微调器绑定到数据库查询。
答案 3 :(得分:0)
User300339
我有同样的问题。用户Qberticus给了我一个很好的指针。
基本上,当您在SimpleCursorAdapter locations
中指定布局时,可以使用自定义布局R.layout.loc_row
。后续调用setDropDownViewResource
将继续使用相同的资源ID绑定。
您只需使用以下内容:
SimpleCursorAdapter locations = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, spinnerCursor, from, to);
locations.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
speciesList.setAdapter(locations);
这适用于我的代码。
BTW,对于到数组,您可以改用它。
int[] to = new int[]{ android.R.id.text1};
详情请见 Android - Text dropdown/selection of Spinner does not show
答案 4 :(得分:0)
我先得到同样的错误。我用了
ArrayAdapter adapter = ArrayAdapter.createFromResource(getContext(),R.array.nitelik_array,android.R.layout.simple_spinner_item );
adapter.setDropDownViewResource(android.R.layout.simple_spinner_item);
我删除了&#34; simple_spinner_item&#34;然后重写了它。有用。我不知道为什么......