2011-05-14 56 views
0

我有一个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

你检查你的光标返回数值? – Flo 2011-05-14 08:08:32

+0

是的,它在程序重新启动的时候返回值很好,只是没有运行。 – smccloud 2011-05-16 13:01:54

回答

0

好吧, 我明白了。我需要关闭适配器,停止管理光标,关闭光标&关闭onSuspend()方法中的db帮助器,然后将所有内容都备份到onResume方法中,因为我正在使用单独的活动向表中添加记录。

0

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

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