0

私はアンドロイドアプリケーションで作業しています。私のアプリケーションでは、以下のアクティビティがあると仮定できます:act1、act2、およびact3。アプリケーションを再オープンしたときに最近のフラグメントを再開する方法

上記の各アクティビティには、act1 - > frag1、act2 - > frag2というような断片があります。

私のアプリケーションが起動しているときにfrag1を開いた後、私の電話機のホームボタンを押しました。私は私の電話のホームページに向けられます。

そして、起動したアイコンを押すか、戻るボタンをもう一度押すと、アプリケーションはfrag1の代わりにact1が再開され/開かれます。

ここで私の質問は、アプリケーションを作成する方法は、アクティビティの代わりに最近の断片を開いたのですか? act1の代わりにfrag1。

ありがとう、 コード例などの詳細情報が必要な場合は教えてください。

+0

は、あなたがこのHTTPSを試し –

+0

onBackPressedイベントを処理する必要があり、スイッチケースにCurrentFragment値をチェックOnResumeでこの

Fragment fragment2=new SecondFragment() CurrentFragment=1; ft.replace(R.id.content_user_home, fragment1, fragment.toString()); ft.addToBackStack(backStateName); ft.commit(); 

のような別のフラグメントコールを呼び出す場合:// –

+0

whatsapp apのように、起動したアイコンを再度クリックしたときに再び開く必要があります。襞付け。 –

答えて

0

あなたの活動に断片を呼び出しているときは常に整数グローバル

int CurrentFragment=-1; 

を作成しますが、以下の整数のように値を設定し、値はすべてのフラグメントのために一意である必要があります。

Fragment fragment1=new FirstFragment() 
CurrentFragment=0; 
    ft.replace(R.id.content_user_home, fragment1, fragment.toString()); 
       ft.addToBackStack(backStateName); 
       ft.commit(); 

あなたは

Switch(CurrentFragment){ 
case 0: 
Fragment fragment1=new FirstFragment() 
CurrentFragment=0; 
    ft.replace(R.id.content_user_home, fragment1, fragment.toString()); 
       ft.addToBackStack(backStateName); 
       ft.commit(); 
break; 

case 1: 
Fragment fragment2=new SecondFragment() 
CurrentFragment=1; 
    ft.replace(R.id.content_user_home, fragment1, fragment.toString()); 
       ft.addToBackStack(backStateName); 
       ft.commit(); 
break; 
} 
関連する問題