使用 SQLite 的 Android 简单 ListFragment

Posted

技术标签:

【中文标题】使用 SQLite 的 Android 简单 ListFragment【英文标题】:Android Simple ListFragment using SQLite 【发布时间】:2015-05-05 13:37:02 【问题描述】:

我正在尝试创建一个简单的 ListFragment,我已使用标准列表活动成功运行它,但我现在尝试使用 ListFragments 来实现它。

我要做的是在 Listfragment 中显示 SQLite 数据。如何将 ListNotes 传递给 Notes 片段?

public class Notes extends Fragment 

NotesControl control;
DatabaseHelper help;
SimpleCursorAdapter adapter;

public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) 
    View view = inflater.inflate(R.layout.fragment_notes, container, false);

    Cursor cursor = control.ListNotes();
    //Mapping the fields cursor to text views
    String[] fields = new String[]help.COLUMN_TITLE, help.COLUMN_DATE;
    int [] text = new int[] R.id.item_title, R.id.item_date;
    adapter = new SimpleCursorAdapter(view.getContext(),R.layout.list_layout,cursor, fields, text);
    ListView listView = (ListView) view.findViewById(android.R.id.list);
    listView.setAdapter(adapter);

    return view;

笔记控件

public Cursor ListNotes() 


我该如何查询?我可以在哪里存储数据库数据以传回我的列表视图?

【问题讨论】:

自定义适配器是开始的好方法... @jvrodrigues NotesControl 保存我对数据库的所有查询,我的自定义适配器将保存什么?我需要另一个xml文件吗?你有例子吗? 【参考方案1】:

尝试使用SimpleCursorAdapter

SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, 
        android.R.layout.simple_list_item_1, 
        cursor, 
        new String[]  help.COLUMN_TITLE , 
        new int[]  android.R.id.text1 );

ListView listView = (ListView) findViewById(R.id.list);
listView.setAdapter(adapter);

唯一的问题是您的光标上需要一个名为“_id”的 id 列才能使其工作,因此要么更改列名,要么使用 'SELECT ' + help.NOTES_ID + ' AS 执行rawQuery() _id ...'

【讨论】:

你能写出完整的查询吗?这会进入我的 onCreateView 或 onActivityCreated 吗?从代码中,这将只返回标题而不返回描述吗?我需要一个自定义适配器来显示描述 您可以为列表项创建任何布局并使用它来代替 android.R.layout.simple_list_item_1。 String 数组获取光标的列,并在 int[] 数组中放置您创建的布局中的视图 ID,以放置您选择的列。网上和 *** 上有很多关于该主题的教程,只需 google simplecursoraapter 即可。

以上是关于使用 SQLite 的 Android 简单 ListFragment的主要内容,如果未能解决你的问题,请参考以下文章

Android - SQLite数据库的简单使用

Android - SQLite数据库的简单使用

如何在android中使用sqlite连接表

Android数据存储文件存储SQLite数据库简单使用 sharedPreferences存储

Android开发之利用SQLite进行数据存储

android SQLITE的基本使用总结