刷新微调器数据

时间:2011-05-14 04:56:21

标签: android

我有一个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();
        }
    });

2 个答案:

答案 0 :(得分:0)

确定, 我明白了。我需要关闭适配器,停止管理光标,关闭光标和放大器。关闭onSuspend()方法中的db帮助程序,然后在onResume方法中重新设置所有内容,因为我使用单独的活动将记录添加到表中。

答案 1 :(得分:0)

只需更改基础数据并调用notifyDataSetChanged()

即可
 list.clear();
 //list modify
  list.add("A");
  list.add("B");
 dataAdapter.notifyDataSetChanged();