我有一个Spinner的应用程序,数据由数据库中的游标填充。如果启动时数据库表中有某些内容,则工作正常。但是,如果我在应用程序运行后向数据库添加了一些东西,我的微调器总是显示它没有选择,即使有一个开始。
我的代码如下。 adapter.getCursor()。requery();没有好处。我希望Spinner在用户点击它时更新它的选择,我在StackOverflow上发现了一些帖子,说你必须使用Spinner后面的TextView作为OnClickListener。但是,对我来说什么也没做。很可能是因为我错过了一个小调
c1 = myDbHelper.readCars();
startManagingCursor(c1);
// create an array to specify which fields we want to display
String[] from = new String[]{"nickname"};
// create an array of the display item we want to bind our data to
int[] to = new int[]{android.R.id.text1};
adapter = new SimpleCursorAdapter(this, android.R.layout.simple_spinner_item, c1, from, to);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinVehicle.setAdapter(adapter);
txtVehiclePrompt.setOnClickListener(new OnClickListener()
{
public void onClick(View v)
{
adapter.getCursor().requery();
}
});
答案 0 :(得分:0)
确定,
我明白了。我需要关闭适配器,停止管理光标,关闭光标和放大器。关闭onSuspend()
方法中的db帮助程序,然后在onResume方法中重新设置所有内容,因为我使用单独的活动将记录添加到表中。
答案 1 :(得分:0)
只需更改基础数据并调用notifyDataSetChanged()
即可 list.clear();
//list modify
list.add("A");
list.add("B");
dataAdapter.notifyDataSetChanged();