2014-01-16 35 views
8

在我的應用程序中。我有一個login屏幕。如果登錄成功,將會啓動一個tab activity,因爲有4個選項卡。當我按下標籤中的其中一個按鈕時,將啓動一項新活動。在我的login類中有一個事件會在某些情況下被解僱。當事件被解僱時,我想回到選項卡活動。我用Intent編寫了一個代碼。該代碼工作正常。但是在到達選項卡活動後,我不想在按下後退按鈕時返回活動。我想刪除這個。我想在按「返回」時顯示登錄。有沒有辦法做到這一點?這是我使用的代碼:使用意向啓動活動並禁用後退按鈕啓動之前的活動

Intent tabi=new Intent(getApplicationContext(),Tab.class); 
startActivity(tabi); 

在標籤活動的代碼onkeydown是:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 


     super.onKeyDown(keyCode, event); 
     return true; 
    } 
    return false; 
} 
+0

呼叫選項卡活動,你可以叫上回按你的活動結束()。 – krishna

回答

10
Intent tabi=new Intent(getApplicationContext(),Tab.class); 
      startActivity(tabi); 
finish(); 
+0

嘿,如果我的答案是正確的,而不是正確的答案 –

4

使用onBackPressed,並在開始你的活動

@Override 
public void onBackPressed() { 
    // TODO Auto-generated method stub 
    super.onBackPressed(); 
    Intent intent = new Intent(Tab.this , Login.class); 
    startActivity(intent) 
} 

並且您可以用用戶不能c的波紋管代碼清除歷史記錄從登錄頁面AME回訪問的頁面

intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); 
1

讓我們再回到登錄界面,可以通過兩種方式來實現:

第一種方式是,(假設您目前在登錄scren)簡單地導航到下一個使用Intent的活動,未完成當前活動,而在onBackPressed()內部,則只需撥打finish()即可。

第二種方法是,如果您登錄活動finish(),那麼只需使用Intent導航到login活動並完成選項卡活動。

它很簡單。使用意圖去登錄屏幕:

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
if (keyCode == KeyEvent.KEYCODE_BACK) { 

    startActivity(new Intent(getApplicationContext(), Login.class)); 
    finish(); 

    super.onKeyDown(keyCode, event); 
    return true; 
} 
return false; 
} 
7

只要調用finish();方法開始活動後。它將從後退按鈕

像預防:

Intent tabi=new Intent(getApplicationContext(),Tab.class); 
startActivity(tabi); 
finish(); 
+0

非常感謝。這幫了我很多! –

+0

不客氣..快樂編碼.. –

2

當事件被解僱,這些意圖標誌

Intent tabi=new Intent(getApplicationContext(),Tab.class); 
tabi.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TOP); 
startActivity(tabi);