我的应用程序中有一个sqlite数据库。我想用它做一个可扩展的列表视图。
我已经采取了我应采取的方法。
尝试了很多相同的教程,却找不到一个教程,其中一个用本地数据库填充Expandable列表。
在Android网站上有一个教程,他们用手机中的联系人详细信息填充可扩展列表。他们是通过内容提供商执行此操作的 ExpandableList2.java
所以我的问题是我是否应该为我自己的应用程序内的数据库创建内容提供程序?
这是唯一的方法还是还有其他更好的方法?
答案 0 :(得分:3)
我创建了一个项目来试用expandablelistview和数据库,希望这有帮助
final class ExpAdapter extends CursorTreeAdapter { LayoutInflater mInflator; public ExpAdapter(Cursor cursor, Context context) { super(cursor, context); mInflator = LayoutInflater.from(context); } @Override protected void bindChildView(View view, Context context, Cursor cursor, boolean isLastChild) { TextView tvChild = (TextView) view.findViewById(android.R.id.text1); tvChild.setText(cursor.getString(cursor .getColumnIndex(DBHelper.COL_TABLE_CHILD_NAME))); } @Override protected void bindGroupView(View view, Context context, Cursor cursor, boolean isExpanded) { TextView tvGrp = (TextView) view.findViewById(android.R.id.text1); tvGrp.setText(cursor.getString(cursor .getColumnIndex(DBHelper.COL_TABLE_MAIN_NAME))); } @Override protected Cursor getChildrenCursor(Cursor groupCursor) { int groupId = groupCursor.getInt(groupCursor .getColumnIndex(DBHelper.COL_ID)); return aDBHelper.getChildCursor(groupId); } @Override protected View newChildView(Context context, Cursor cursor, boolean isLastChild, ViewGroup parent) { View mView = mInflator.inflate( android.R.layout.simple_expandable_list_item_1, null); TextView tvChild = (TextView) mView .findViewById(android.R.id.text1); tvChild.setText(cursor.getString(cursor .getColumnIndex(DBHelper.COL_TABLE_CHILD_NAME))); return mView; } @Override protected View newGroupView(Context context, Cursor cursor, boolean isExpanded, ViewGroup parent) { View mView = mInflator.inflate( android.R.layout.simple_expandable_list_item_1, null); TextView tvGrp = (TextView) mView.findViewById(android.R.id.text1); tvGrp.setText(cursor.getString(cursor .getColumnIndex(DBHelper.COL_TABLE_MAIN_NAME))); return mView; } }
答案 1 :(得分:2)
您不必为此创建内容提供商。
答案 2 :(得分:0)
如果你有本地数据库,最好的方法是使用CursorTreeAdapter,因为它会自动处理更新列表。