繁体   English   中英

带有 SQLite 的 Android ListView

[英]Android ListView with SQLite

我想刷新 Listview 项目。 这些项目是从 SQLite 数据库填充的。 我的代码在下面

public class Weeve extends Activity {
      private String[] lv_arr;
    protected ListView CView;
    private DBAdapter mDbHelper;

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

   mDbHelper = new DBAdapter(this);
    mDbHelper.open();

    Cursor c = mDbHelper.getAll();
    if (c.getCount() > 0)
    {if (c.moveToFirst())
    {
        ArrayList strings = new ArrayList();
       do {                    
          String mC = c.getString(0);
          strings.add(mC);  

       } while (c.moveToNext());
       lv_arr = (String[]) strings.toArray(new String[strings.size()]);
    }
    }  
    else Toast.makeText(this, 
           "No more Records", 
           Toast.LENGTH_SHORT).show();
    c.close();

    ListView CView = new ListView(this);
    CView.setAdapter(new ArrayAdapter<String>(this,
            android.R.layout.simple_list_item_1, lv_arr));      
    setContentView(CView);}}

我想在添加、更新或删除 SQLite 表后刷新此列表视图。 这些操作由内容或选项菜单调用。 我试图将这些代码创建到一个单独的函数中,并在每次操作后调用它。 但不能。 我认为 setContentView(CView) 语句。

我还尝试使用 SimpleCursorAdapter 像来自 Android.com 的记事本示例。 我收到线程错误。 帮我。

您可以使用 Adapter.notifyDataSetChanged() 做到这一点。

但是,我发现您的代码略有偏差。 您正在使用游标从数据库中获取行,只是为了为行值创建一个新的 ArrayAdapter。 为什么不使用 CursorAdapter 来支持您的列表? 这就是它的意义所在。

确保您的所有活动都在清单中

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM