如何从另一个片段隐藏进度对话框 - Android

时间:2012-09-25 23:05:40

标签: android progressdialog android-fragmentactivity

我有三个标签(使用Fragments / ViewPager / SupportLibrary / FragmentActivity)。

左侧选项卡在初始加载时使用ProgressDialog。但我默认使用中心选项卡。然而,当我第一次进入此活动并登陆该中心选项卡时,选项卡#1中的ProgressDialog显示在选项卡#2(中心)上。

有没有办法阻止这种情况?

1 个答案:

答案 0 :(得分:0)

我使用布尔语阻止了这一点。我不认为这是一个非常干净的方式。选择选项卡时,只需将布尔值设置为true,并仅在选中选项卡时执行asynctask。

所以在我的MainActivity中我有一个3的数组

public static boolean[] selected = new boolean[3];(静态与我使用的外部类有关,在你的情况下可能不需要)

我使用说明

指示每个标签
public void onTabSelected(Tab tab, android.app.FragmentTransaction ft)
    {
        getSupportFragmentManager().popBackStack();
        if (tab.getContentDescription() == "tab1")
        {
            mViewPager.setAdapter(mAppSectionsPagerAdapter);   
            selected[0] = true;
            selected[1] = false;
            selected[2] = false;
            mAppSectionsPagerAdapter.notifyDataSetChanged();
        }
        if (tab.getContentDescription() == "tab2")
        {               
            mViewPager.setAdapter(mAppSectionsPagerAdapter);
            selected[0] = false;
            selected[1] = true;
            selected[2] = false;
            mAppSectionsPagerAdapter.notifyDataSetChanged();
        }
        if (tab.getContentDescription() == "tab3")
        {
            mViewPager.setAdapter(mAppSectionsPagerAdapter);
            selected[0] = false;
            selected[1] = false;
            selected[2] = true;
            mAppSectionsPagerAdapter.notifyDataSetChanged();
        }

片段:

    if (MainActivity.selected[0])
    {
               // asynctask fragment
    }