2013-06-20 12 views
1

在我的應用程序10屏幕在那裏,我可以從其餘9屏幕去屏幕10,在這裏如果ii按設備後退按鈕,然後顯示前一屏幕的應用程序,但我會輕易改變如果屏幕10從屏幕2重新顯示的路徑,我如何指定條件。顯示指定條件後退按鈕路徑在Android

+2

這裏我使用完成()在onBackPressed()移動到前一個屏幕 – user2218563

+0

考慮到你濫用和使用貶義詞和語句,我不編輯這個問題。而只是指出錯誤。使用'I'而不是'i'。標點符號應該有一個''之前沒有。將「ii」修改爲「I」。把問題整齊地分解成句子,這個文本牆是沒有用的。在你提出問題之前還有一點google。你可以搜索'覆蓋後退按動作android'。前10個鏈接是你需要的。這個問題是不值得的。閱讀常見問題。 – Siddharth

回答

1

最簡單的方法可能是裏面提供一個獨特的額外的Intent您使用每次啓動該活動,代表你是從哪裏來的屏幕,使您可以修改的行爲,你在onBackPressed()認爲合適的。

例如,從任何活動X上啓動「屏幕10」:

Intent intent = new Intent(...); 
intent.putExtra("from_screen", x); //where x is a unique number or some other identifier 
startActivity(intent); 

然後,在目標活動的onBackPressed(),您可以檢查從推出該活動的Intent多餘的:

@Override 
public void onBackPressed() { 
    Intent callingIntent = getIntent(); 
    int callingScreen = callingIntent.getIntExtra("from_screen", -1); 

    //Do some logic based on the screen you came from 
    switch(callingScreen) { 
     case 1: 
      //Magic action when we came from screen 1 
      break; 
     case 5: 
      //Magic action when we came from screen 5 
      break; 
     default: 
      //Normal for everyone else, which is to just finish() 
      super.onBackPressed(); 
      break; 
    } 
} 

如果您不希望修改行爲,請務必致電super

+0

這裏的問題是邏輯,我怎樣才能指定條件 – user2218563

+0

假設我將從screen1移動到screen10,但是如果我在screen10上點擊後面我想要轉到其他屏幕 – user2218563

+0

@ user2218563然後而不是調用finish()或'super',在這種情況下,您將構建一個新的'Intent',並從'onBackPressed()'中調用'startActivity()'。雖然我應該注意到,從背部印刷開始新的屏幕是令人沮喪的行爲,因爲它會讓用戶感到困惑。 – Devunwired

1

我建議的方式是使用andriod清單。在要跳過從後面的活動節點,

<activity android:name="com.example.app.ACTIVITY_FROM" > 
     <meta-data 
     android:name="android.support.PARENT_ACTIVITY" 
     android:value="com.example.app.ACTIVITY_TO_GO_TO" /> 
</activity> 

哪裏ACTIVITY_FROM是活動的名稱你按下後退按鈕和ACTIVITY_TO_GO_TO是你想要的按鈕,給您帶來的活動。在元數據節點中,android:name部分需要保持原樣,這就是說當前活動的父級應視爲android:value活動。