我是这个ExpandableListView的新手,非常需要您的帮助。

我正在使用以下代码通过SimpleCursorTreeAdapter创建ExpandableListView,因为我是从SQLite数据库获取数据的。 一切正常,但是我找不到如何向父级ListView添加某些项目的解决方案(目前)。 我想通过单击TextView添加一个类别。

public class ListViewExp extends ExpandableListActivity {
    private DBAdapter db;
    private Cursor  getMatchigItems;
    private Cursor getAllCat;
    private ExpandableListView expListView;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.testexpview);
        TextView tv1 = (TextView) findViewById(R.id.testtext);
        db = new DBAdapter(this);
        db.open();
        getAllCat = db.getAllCategories(1);
        startManagingCursor(getAllCat);

        final SimpleCursorTreeAdapter cursorTreeAdapter = new SimpleCursorTreeAdapter(
                getApplicationContext(),
                getAllCat,
                R.layout.group_row,
                R.layout.group_row,
                new String[]{db.KEYCAT_TXTCATEGORYNAME, db.KEYCAT_ROWID},
                new int[]{R.id.groupname},
                R.layout.child_row,
                R.layout.child_row,
                new String[]{db.KEYITEMS_TXTITEMNAME, db.KEYITEMS_ROWID, db.KEYITEMS_ROWID},
                new int[]{R.id.childname,R.id.rgb}) {

            @Override
            protected Cursor getChildrenCursor(Cursor groupCursor) {
                db.open();
                getMatchigItems = db.getMatchingItems(groupCursor.getLong(0), 1);
                startManagingCursor(getMatchigItems);
                return getMatchigItems;
            }
        };
        expListView = getExpandableListView();
        setListAdapter(cursorTreeAdapter);

        tv1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                db.open();
                db.addMyCategory("TestCat1", "");
//              getAllCat.requery();
                cursorTreeAdapter.notifyDataSetChanged();
            }
        });
        db.close();
    }
}

添加到数据库工作正常,但仅在重新启动应用程序时才能看到新项目。 我试图重新查询游标getAllCat.requery(); ,但是当我这样做时,它会刷新列表,但它是空的(甚至不会显示较旧的项目),就像没有数据一样。

谁能给我一些解决方法的指导? 我想念什么吗?

我应该执行onResume替代还是完全不同? 预先感谢一百万! 最好的祝福!

===============>>#1 票数:1 已采纳

对不起。 奇怪的是,在这里已经提出要求后,我现在已经找到了答案。 不是我的意思 但是,有人会使用它。

我已经重新初始化了Cursor并将其更改为Adapter

getAllCat = db.getAllCategories(1);
cursorTreeAdapter.changeCursor(getAllCat);

这是现在的onClick块:

public void onClick(View v) {

                db.open();
                db.addMyCategory("TestCat7", "");
                getAllCat = db.getAllCategories(1);
                cursorTreeAdapter.changeCursor(getAllCat);
                cursorTreeAdapter.notifyDataSetChanged();
                Toast.makeText(getApplicationContext(), "KLIK", Toast.LENGTH_SHORT).show();
            }

仍然欢迎任何更好的建议。 谢谢

  ask by PacQ translate from so

未解决问题?本站智能推荐:

1回复

用于ExpandableListView的SimpleCursorTreeAdapter

如何格式化光标,以便我可以正确显示类别及其子级。 适配器如何区分什么类别和什么是子类别?
1回复

Android ExpandableListView SimpleCursorTreeAdapter启动空会崩溃

我正在编写一个Android应用(针对Android 2.1以上版本)。 我正在使用带有SimpleCursorTreeAdapter的ExpandableListView 。 我发现按照以下顺序崩溃: ExpandableListView启动时为空(即数据库中没有相应的记录)。
1回复

使用SimpleCursorTreeAdapter的ExpandableListView

我正在使用SimpleCursorTreeAdapter创建ExpandableListView。 我面临很多问题。 谁能告诉我我该怎么做?
1回复

具有SimpleCursorTreeAdapter的ExpandableListView绑定

我尝试使用SimpleCursorTreeAdapter绑定ExpandableListView但我面临正确绑定的问题。 我的Java代码: 输出: 我得到这样的输出,第一次我正确 第一次: SecondTime当我打开孩子时,我得到: 我该如何解决?
3回复

ExpandableListView的SimpleCursorTreeAdapter和CursorLoader

我试图通过使用带有SimpleCursorTreeAdapter的CursorLoader来异步查询提供程序 这是我的Fragment类,它实现了CursorLoader 这是我的适配器,它是SimpleCursorTreeAdapter子类 问题是,当我点击其中一个父组时
1回复

带有按钮的Android ExpandableListView

我想在scroolview中使用expandablelist 我该怎么做(一个屏幕2动作) 顶部->水平滚动视图(某些图像从左到右)向下-> expandableListView(从上到下) | 屏幕 水平滚动视图(一些图像) expandab
1回复

Android SimpleCursorTreeAdapter挂起

我正在尝试出于学习目的编写的某些代码中使用SimpleCursorTreeAdapter。 发生的事情是,当我单击父对象时,它会展开并显示孩子,但随后我无能为力。 我使用调试器遍历了代码,发现我陷入了looper.loop内部永无休止的循环中。 我已经注释掉了以下代码段中所有可以正常工作的
2回复

带有滑动的Android ExpandableListView

我只是好奇。 是否可以在Android中将ExpandableListView与滑动功能结合使用? 为了解释我的意思,请想象一下这种情况:触摸列表中的一个项目,将展开一个视图。 在此视图中,您可以向左/向右滑动以查看新视图,而无需更改背景。 如果您不明白,请发表评论! 提前致谢
1回复

Android ExpandableListActivity和SimpleCursorTreeAdapter?

我正在为Android编写一个简单的应用程序。 我有2个表 - 一个叫做'grous',另一个叫'group_items'。 我想使用可扩展列表来显示两个表中的数据。 最好的方法是什么? 是否可以使用SimpleCursorTreeAdapter映射数据? 我找不到任何有用
1回复

使用SimpleCursorTreeAdapter的ExpandableListView在更新时滚动到顶部

我通过扩展SimpleCursorTreeAdapter创建了ExpandableListAdapter。 游标由加载程序管理。 当该列表显示给user时,我启动了后台服务以从服务器获取最新数据。 如果服务器返回新数据,则将其添加到数据库并通知子游标。 游标被重新查询并且列表更新。 此