5

我的Android應用程序(API級別14)中有一個ActionBar。 有一個主頁按鈕與我的應用程序圖標。在MainActivity中,我在EditText視圖中編寫了一個簡短的文本。 當我導航到PreferenceActivity時,圖標會顯示一個箭頭來指示我,我可以導航到Home Activity(MainActivity)。Android - 點擊ActionBar應用程序圖標,創建新的活動實例

// PreferenceActivity-onCreate 
    ActionBar actionBar = getActionBar(); 
    actionBar.setDisplayHomeAsUpEnabled(true); 

我點擊動作條中的該應用程序圖標返回到MainActivity

// PreferenceActivity 
@Override 
public boolean onOptionsItemSelected(MenuItem item) 
{ 
    switch (item.getItemId()) 
    { 
    case android.R.id.home: 
     Intent intent = new Intent(this, MainActivity.class); 
     intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
     startActivity(intent); 
     return true; 
    default: 
     return super.onOptionsItemSelected(item); 
    } 
} 

現在我的MainActivity創建再UND中的EditText文本消失。 我以爲我可以保持活着與Intent.FLAG_ACTIVITY_CLEAR_TOP MainActivity。 我想要有一種行爲,例如我在設備上使用我的返回按鈕。

回答

7

如果你想回到的MainActivity現有實例,你需要這樣做:

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP | Intent.FLAG_ACTIVITY_SINGLE_TOP); 

單獨使用CLEAR_TOP導致創建的MainActivity一個新的實例。

+0

這種方式不起作用。但是,當我寫2 addFlags它工作正常。 \t \t \t intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); \t \t \t intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); – Gepro

+0

啊...很抱歉,你需要一個「|」而不是「||」 2個標誌之間。我的錯。你需要一個**按位或**,而不是**邏輯**或。我編輯了我的答案。 –

+0

對,我必須注意到, – Gepro

相關問題