2012-09-25 4 views
1

세 개의 탭 (Fragments/ViewPager/SupportLibrary/FragmentActivity 사용)이 있습니다.다른 조각에서 진행 대화 상자를 숨기는 방법 - Android

왼쪽 탭은 초기로드시 ProgressDialog를 사용합니다. 하지만 기본적으로 가운데 탭으로 설정됩니다. 그러나이 활동에 처음 들어가서 해당 중앙 탭에 착륙하면 탭 # 1의 ProgressDialog가 탭 # 2 (중앙)에 표시됩니다.

이 문제를 방지 할 방법이 있습니까?

답변

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 
    }