Android SDK:活动组onBackButtonPressed无法正常工作

时间:2012-07-11 12:39:45

标签: android android-activity

我使用活动组在一个标签下的多个活动之间导航。

然而,当我进入第一个子活动并按回来时,我收到以下错误:

  

java.lang.NullPointerException at   com.android.TopActivity.onBackPressed(TopActivity.java:208)   在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类中调用onBackPressed方法,但它一直在崩溃。 我究竟做错了什么?我是否将正确的值放入idList?

3 个答案:

答案 0 :(得分:1)

很难从您的描述中看出来,但听起来您可以通过使用Fragments实现您的设计(假设您的目标是有适当支持库的平台版本)来提供更好的服务。

那说,使用getLocalActivityManager().getCurrentActivity()而不是尝试维护某种类型的ID堆栈呢?看来你可能想要将背压发送到“当前”活动,对吗?

答案 1 :(得分:0)

试试这个:

super.onBackPressed();

答案 2 :(得分:0)

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