2012-07-11 88 views
0

我正在使用活動組在一個選項卡下的多個活動之間導航。Android SDK:活動組onBackButtonPressed不起作用

但是當我拿到第一個孩子的活動,並按回我收到以下錯誤:

java.lang.NullPointerException at com.android.TopActivity.onBackPressed(TopActivity.java:208) at android.app.Activity.onKeyUp(Activity.java:1904)

這是它崩潰的方法:

@Override 
    public void onBackPressed() 
    { 
     int length = idList.size(); 
     if (length > 1) 
     { 
      Activity current = getLocalActivityManager().getActivity(
       idList.get(length -1)); 
      //Log.i("CURRENT ACTIVITY =","CURRENT ACTIVITY "+current.getClass().getName()); 
      current.onBackPressed(); 

     } 
    } 

我設置了IDLIST與以下內容:

idList.add("HomeActivity"); 
    idList.add("TopActivity"); 

我想調用TopActivity cla的onBackPressed方法但它不斷崩潰。 我在做什麼錯?我將正確的值放入idList中嗎?

回答

1

這是很難從你的描述告訴我們,但它聽起來就像你可能會用碎片實現你的設計(假設你的目標平臺版本其中有得到更好的服務一個適當的支持庫)。

這就是說,使用getLocalActivityManager().getCurrentActivity()而不是試圖維護一些類型的ID堆棧呢?看起來你可能想把背後的新聞發送到「當前」活動,對吧?

0

試試這個:

super.onBackPressed(); 
+0

我試過了,仍然沒有運氣 – user1417302 2012-07-11 12:47:11

+0

可以分享你試過什麼? – AkashG 2012-07-11 12:50:41

0
@Override 
public boolean onKeyDown(int keyCode, KeyEvent event) { 
    if (keyCode == KeyEvent.KEYCODE_BACK) { 
     //your code goes here 
    } 
    return super.onKeyDown(keyCode, event); 
}