使用本地SQlite数据库填充可扩展列表视图的方法

Sha*_*aaz 9 sqlite android expandablelistview android-contentprovider simplecursoradapter

我的应用程序中有一个sqlite数据库.我想用它做一个可扩展的列表视图.

我已经采取了我应采取的方法.

尝试了很多相同的教程,却找不到一个教程,其中一个用本地数据库填充Expandable列表.

在android站点中有一个教程,他们用手机中的联系人详细信息填充可扩展列表.他们是从内容提供商 ExpandableList2.java这样做的

所以我的问题是我是否应该为我自己的应用程序内的数据库创建一个内容提供程序?

这是唯一的方法还是还有其他更好的方法吗?

ap4*_*200 3

我创建了一个项目来尝试可扩展列表视图和数据库,希望这有帮助

最终类 ExpAdapter 扩展了 CursorTreeAdapter {
        LayoutInflater mInflator;

        公共ExpAdapter(光标光标,上下文上下文){
            超级(光标,上下文);
            mInflator = LayoutInflater.from(context);
        }

        @覆盖
        protected void bindChildView(视图视图,上下文上下文,光标光标,
                布尔值 isLastChild) {
            TextView tvChild = (TextView) view.findViewById(android.R.id.text1);
            tvChild.setText(cursor.getString(光标
                    .getColumnIndex(DBHelper.COL_TABLE_CHILD_NAME)));
        }

        @覆盖
        protected void bindGroupView(视图视图,上下文上下文,光标光标,
                布尔值已展开){
            TextView tvGrp = (TextView) view.findViewById(android.R.id.text1);
            tvGrp.setText(cursor.getString(光标
                    .getColumnIndex(DBHelper.COL_TABLE_MAIN_NAME)));
        }

        @覆盖
        protected Cursor getChildrenCursor(Cursor groupCursor) {
            int groupId = groupCursor.getInt(groupCursor
                    .getColumnIndex(DBHelper.COL_ID));
            返回 aDBHelper.getChildCursor(groupId);
        }

        @覆盖
        protected View newChildView(上下文上下文,光标光标,
                布尔 isLastChild,ViewGroup 父级){
            视图 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(光标
                    .getColumnIndex(DBHelper.COL_TABLE_CHILD_NAME)));
            返回mView;
        }

        @覆盖
        protected View newGroupView(上下文上下文,光标光标,
                布尔 isExpanded,ViewGroup 父级){
            视图 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(光标
                    .getColumnIndex(DBHelper.COL_TABLE_MAIN_NAME)));
            返回mView;
        }

    }