0

我是安卓新手。我把暑假的空闲时间花在研究它上,以尝试开发一个应用程序。

我需要在列表(ListView)中显示来自数据库表的数据,以便用户操作它。

我找到了 simpleCursorAdapter,但它被指示为已弃用,以避免在 UI 线程中执行查询。使用我的第一张桌子,它会保持小,这可能不是问题,但使用主桌子它会。于是研究了LoaderManager的推荐替换。

我在 ApiDemos SDK Samples 中找到了 LoaderThrottle 示例,试图了解 LoaderManager 机制。ApiDemos/src/com/example/android/apis/app/LoaderThrottle.java

我努力理解这个例子,但我仍然有一些我不明白的地方。

我没有在第 406 行找到 android.R.layout.simple_list_item_1 和 android.R.id.text1 :

            // Create an empty adapter we will use to display the loaded data.
        mAdapter = new SimpleCursorAdapter(getActivity(),
                android.R.layout.simple_list_item_1, null,
                new String[] { MainTable.COLUMN_NAME_DATA },
                new int[] { android.R.id.text1 }, 0);
        setListAdapter(mAdapter);

我也没有在第 377 行找到 android.R.id.content:

        // Create the list fragment and add it as our sole content.
    if (fm.findFragmentById(android.R.id.content) == null) {
        ThrottledLoaderListFragment list = new ThrottledLoaderListFragment();
        fm.beginTransaction().add(android.R.id.content, list).commit();
    }

ApiDemos 布局目录中没有 simple_list_item_1.xml。有很多不同布局的 text1,但没有找到它可能是哪一个。找到 3 个“内容”,其中一个位于 ContentBrowserActivity$Content 类型的 content_browser.xml 中...

所以我不明白我期待的 ListView 的链接在哪里。

所以对我来说它仍然是“魔法”,因为我没有看到 ListView 和适配器之间的隐藏链接。

我应该在我的 ListView 中有什么?没有什么?我从数据库中获取的每个数据一个 TextView?

如果有人有一个 LoaderManager 的示例,可以将数据库表与 ListView 链接起来,而不是与所有其他 ApiDemo 融为一体,我会喜欢的!

提前感谢您的提示和回答,弗洛伦特

4

1 回答 1

0

谢谢您的回答。我现在更好地理解了机制。无需创建特定布局。

所以我认为与应用程序其余部分的链接在 FragmentTabs 活动中,第 54 行:

bar.addTab(bar.newTab()
    .setText("Throttle")
    .setTabListener(new TabListener<LoaderThrottle.ThrottledLoaderListFragment>(
            this, "throttle", LoaderThrottle.ThrottledLoaderListFragment.class)));

ApiDemos/src/com/example/android/apis/app/FragmentTabs.java

最好的问候,弗洛伦特

于 2012-08-18T06:50:38.727 回答