2012-05-04 29 views
3

我有三個活動 - 一個B和C,其中B是一個選項卡活動。 活性A被首次推出,而B從A推出我做完一個活動B時使用此代碼推出設置意圖返回TabActivity中的鍵

public void onStop() { 
    super.onStop(); 
    this.finish(); 
} 

現在我想,當返回鍵在B.

按下發射活動Ç

我嘗試使用此代碼

@Override 
public void onBackPressed() { this.getParent().onBackPressed(); 
} 

這不利於作爲父活動將在啓動子活動完成後覆蓋返回鍵。當我按下返回鍵時實際發生的事情是活動退出到主屏幕。

我試圖重寫返回鍵以及一個Intent設置爲它

@Override 
public void onBackPressed() { 
    Intent backIntent = new Intent(); 
    backIntent.setClass(this, main.class); 
    startActivity(backIntent); 
} 

這也並不能幫助我。 什麼可能是這個問題的一個可能的解決方案,我怎樣才能啓動活動C當按下回車鍵?

+0

嘗試.... backIntent.setClass(這一點,C.class); – dira

回答

5

首先你不應該完成的活動時,當活動一停,這是完全錯誤的做法,而不是它,你必須完成的活動,當你開始活動B.

例如現在你

Intent i = new Intent(this, B.class); 
startActivity(i); 
finish(); 

當用戶按下後退按鈕時要啓動活動C,請使用下面的代碼。

@Override 
public void onBackPressed() { 
    Intent backIntent = new Intent(this, C.class); 
    startActivity(backIntent); 
    super.onBackPressed(); 
} 
+0

感謝您的努力。我試過這個。問題依然存在。活動C未啓動 – darsh

+0

謝謝。它也幫助了我。 – Rohit

1

您必須覆蓋的onkeydown

@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    // TODO Auto-generated method stub 

    if (keyCode == event.KEYCODE_BACK) 
    { 
     //Do your code here 
    } 
    return super.onKeyDown(keyCode, event); 
} 
} 

當用戶按下設備硬後退按鈕這將被調用。

導航到下一個活動: StartActivity(new Intent(getApplicationContext(),main.class));

+0

試過這個。不幸的是,問題依然存在。 – darsh

0

覆蓋下面的方法和進口事件.....

public boolean onKeyDown(int keyCode, KeyEvent event) 
{ 
// TODO Auto-generated method stub 

    if (keyCode == event.KEYCODE_BACK) 
    { 
     //Write your intent or other code here 
    } 
    return super.onKeyDown(keyCode, event); 
}