我正在使用SimpleCursorAdapter
来管理对数据库的查询,然后在ListView
中显示结果。
这是我的代码:
database.open();
ListView listContent = (ListView)findViewById(android.R.id.list);
Cursor c = database.getData();
startManagingCursor(c);
String[] from = new String[]{Database._GROUP_NAME};
int[] to = new int[]{android.R.id.text1};
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1, query, from, to);
listContent.setAdapter(adapter);
database.close();
尽管乍看之下它能按预期运行,但我相信由于存在
CursorAdapter
,因此这不是继续进行的方法。我知道这是一个菜鸟问题,但是自从现在开始使用Android编程以来,我仍然了解的不多。
如何将使用
SimpleCursorAdapter
传递给CursorAdapter
?已经在互联网上进行搜索,但无法理解该如何完成。
不问代码只是一些方向。
谢谢
最爱
后续维护更新
database.open();
ListView listContent = (ListView)findViewById(android.R.id.list);
Cursor c = database.getData();
MyAdapt cursorAdapter = new MyAdapt(this, query);
listContent.setAdapter(adapter);
database.close();
MyAdapt类:
public class MyAdapt extends CursorAdapter {
private final LayoutInflater mInflater;
public MyAdapt(Context context, Cursor c) {
super(context, c);
mInflater = LayoutInflater.from(context);
mContext = context;
}
@Override
public void bindView(View view, Context context, Cursor cursor) {
TextView groupName = (TextView) view.findViewById(android.R.id.text1);
groupName.setText(cursor.getString(cursor
.getColumnIndex(Database._GROUP_NAME)));
}
@Override
public View newView(Context context, Cursor cursor, ViewGroup parent) {
final View view = mInflater.inflate(
android.R.layout.simple_list_item_1, parent, false);
return view;
}
}
这是正确的方法吗?
最爱
最佳答案
SimpleCursorAdapter是可用于自定义适配器的最简单形式的适配器。
当您不需要任何自定义时,应仅使用SimpleCursorAdapter。
关于android - Android SimpleCursorAdapter到CursorAdapter,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11720100/