2016-07-25 52 views
-4

有4個活動,名稱爲:main,p1,p2,p3 如果用戶在p1或p2或p3時想要退出按鈕並重新啓動應用程序在與簡歷按鈕的主要活動可以去同一活動了。 有我的代碼:主要活動:如何在任何時間保存當前的活動狀態並重新加載

public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.main_page); 


     Button button2=(Button)findViewById(R.id.btn2); 



     button2.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent=new Intent(MainActivity.this,p1.class); 
       startActivity(intent); 
      } 
     }); 
    } 
} 

XML:

<Button 
     android:text="resume" 
     android:layout_width="wrap_content" 
     android:id="@+id/btn1" 
     android:layout_height="wrap_content" /> 

    <Button 
     android:text="next" 
     android:id="@+id/btn2" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" /> 

活動P1:

public class p1 extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.p1); 

     Button button = (Button) findViewById(R.id.btne); 
     button.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent=new Intent(p1.this,p2.class); 
       startActivity(intent); 
      } 
     }); 

     Button button1=(Button)findViewById(R.id.btne2); 
     button1.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       Intent intent=new Intent(p1.this,MainActivity.class); 
       startActivity(intent); 
      } 
     }); 

     } 
    } 

XML:

<Button 
     android:text="next" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/btne"/> 

    <Button 
     android:text="go in main" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:id="@+id/btne2"/> 

和P2,P3像P1 。請提供幫助,如果有人可以

+1

你需要重新解釋這個問題。即使任何人想幫助,他也不能,因爲沒有人能夠理解你打算做什麼 –

+0

當你開始新的活動時,它被添加到堆棧,所以當用戶點擊返回按鈕或當你調用完成();他會去回到之前的活動。 – RediOne1

+0

如果可能的話,你想要什麼圖形表示會很好,並且可以很容易理解 –

回答

1

如果您的主要活動開始所有的休息,那麼你只需要撥打電話finish();來完成它們,你的主要活動將回到頂部。因此,而不是在P1寫例如:

Intent intent=new Intent(p1.this,MainActivity.class); 
startActivity(intent); 

寫:

p1.this.finish(); 

如果要關閉所有的活動打開,直到您的主要活動(即在另一方面,你有MainActivity - > P1 - > P2,並且希望只留MainActivity,P1和P2完成),然後使用此代碼:

Intent intent = new Intent(getApplicationContext(), MainActivity.class); 
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(intent); 
+0

:如果我在p2中,然後點擊轉到main。然後當點擊繼續在主要進入p2 – erfan

+0

要如果我在活動p2然後點擊進入主。當我在主,然後點擊恢復。我進入活動P2。像遊戲一樣,重新開始... – erfan

+0

@erfan,所以你想只隱藏p2 - 而不是關閉它?如果這是真的,那麼當用戶在打開p2之前按下PLAY按鈕關閉Main時,則當用戶按下PAUSE時 - 使用startActivity打開Main。當用戶在Main調用完成()時按下RESUME - 在這種情況下,您的PLAY按鈕必須更改爲RESUME。還有其他一些問題,你可以打開兩個主要活動,第一個會顯示PLAY按鈕,恢復遊戲的版本會顯示RESUME按鈕。 – marcinj

0

在您的MainActivity,聲明一個全局變量resumeIntent:

public static Intent resumeIntent = null; 

當你點擊Resume按鈕(在MainActivity)它應該去上一個活動,按以下步驟實現單擊事件:

 if (resumeIntent != null) { 
      startActivity(resumeIntent); 
     } else { 
      Toast.makeText(MainActivity.this, "No Intent to resume !", Toast.LENGTH_SHORT).show(); 
     } 

在這些活動P1,P2和P3的代碼轉到主要按鈕如下:

btnGoToMain.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 
       MainActivity.resumeIntent = getIntent(); 
       finish(); 
      } 
     }); 

希望它有幫助!

相關問題