2013-02-23 88 views
0

只有存在網絡連接時,我的應用才能正常工作。所以,我在應用程序啓動和恢復中檢查了相同的內容。如何向用戶顯示網絡連接狀態

我有一個監聽網絡變化的廣播接收器。

如果沒有網絡,我想展示一個簡單的「無網絡連接」視圖。 「無網絡連接」包含一個文本視圖,表明沒有互聯網的悲傷面孔。

當網絡變得可用時,從廣播接收器中,我想將'無連接視圖'更改爲我的'儀表板'視圖。

「儀表板」視圖具有應用程序的主要業務邏輯和工作流程。

因此,根據網絡狀態,活動在兩個視圖之間振盪。

達到此目的的最佳方法是什麼?

案例1:這兩個視圖都有自己的活動。 問題:我需要處理「無連通性」視圖的壓倒性事件和生命週期事件,這些事件是多餘的。

情況2:一個活動和使用開關視圖動態地根據網絡狀態

情形3:在同一個XML文件兩種佈局(相對佈局)。根據狀態打開/關閉可見性。

案例4:使用Inflater動態切換視圖。

在此先感謝。

回答

0

使用一個活動有兩個片段:ConnectStatusFragment,DashboardFragment

private void showFramentDepends(){ 
    if(networkisfine){ 
     // init your fragmnet 
     switchFragment(ConnectStatusFragment); 
    }else{ 
     switchFrament(DashboardFragment); 
    } 
} 

private void switchFragment(Fragment fragment){ 
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction(); 
    ft.setTransition(FragmentTransaction.TRANSIT_FRAGMENT_FADE); 
    ft.replace(R.id.content_fragment, fragment); 
    ft.commit(); 
} 

和你的活動佈局的xml文件應該是這樣的:

<FrameLayout 
    android:id="@+id/content_fragment" 
    android:layout_width="match_parent" 
    android:layout_height="0dp" 
    android:layout_weight="1"> 
</FrameLayout> 
+0

嗯,我還沒有在我的應用程序使用的片段。使用正常的活動。 – andy 2013-03-05 10:44:56