[英]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.