【问题标题】:Proper Way to Refresh Android ListVew while in another Tab在另一个选项卡中刷新 Android ListView 的正确方法
【发布时间】:2012-07-27 01:51:54
【问题描述】:

基本上我有两个标签。一个 Fragment 和一个 ListFragment。

当在 Fragment 中时,您可以将数据插入到数据库中,该数据库将在其旁边的 ListFragment 选项卡中填充 ListView。我希望能够滑动到该 ListFragment(插入新数据后),并且在使用 ViewPager 功能进行滑动时,我希望 ListView 刷新。

有没有合适的方法来做到这一点?如果需要,我可以显示代码;但不确定要显示哪个代码。首先,这是我的查看寻呼机设置:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fragment_layout);

    mSectionsPagerAdapter = new SectionsPagerAdapter(
            getSupportFragmentManager());

    final ActionBar actionBar = getActionBar();
    actionBar.setNavigationMode(ActionBar.NAVIGATION_MODE_TABS);
    actionBar.setDisplayHomeAsUpEnabled(true);

    mViewPager = (ViewPager) findViewById(R.id.viewpager);
    mViewPager.setAdapter(mSectionsPagerAdapter);

    mViewPager
            .setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
                @Override
                public void onPageSelected(int position) {
                    actionBar.setSelectedNavigationItem(position);
                }
            });

    for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++) {
        actionBar.addTab(actionBar.newTab()
                .setText(mSectionsPagerAdapter.getPageTitle(i))
                .setTabListener(this));
    }

}

请注意:这不是双窗格设置。

【问题讨论】:

    标签: android listview android-fragments


    【解决方案1】:

    正确的做法是让您的ListFragment 实现LoaderManager.LoaderCallbacks&lt;D&gt; 接口并初始化Loader 以加载绑定到ListView 的数据。

    您可以阅读此blog post 以了解有关Loaders 的更多信息。

    【讨论】:

    • 好吧,我将您标记为正确并为答案 +1,因为这回答了问题。如果您能向我展示一个非常基本的骨架编码结构,我将不胜感激!
    • 我最近blogged 关于Loader 的...它给出了一个如何使用ListFragment 实现LoaderCallbacks&lt;Cursor&gt; 的示例。希望您能从中受益。
    • Android SDK 的 API Demos 示例代码中Loaders 上还有大量示例代码。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-11-10
    • 2012-05-26
    • 2018-08-29
    • 1970-01-01
    相关资源
    最近更新 更多