我想刷新列表视图项目。这些项目是从 SQLite 数据库填充的。我的代码如下
public class Weeve extends Activity {
private String[] lv_arr;
protected ListView CView;
private DBAdapter mDbHelper;
公共无效 onCreate(捆绑保存实例状态){
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 来支持您的列表?这就是它的目的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)