0

我正在使用活动组在一个选项卡下的多个活动之间导航。

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

java.lang.NullPointerException 在 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 中?

4

3 回答 3

1

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

也就是说,使用getLocalActivityManager().getCurrentActivity()而不是尝试维护某种类型的 ID 堆栈怎么样?看来您可能还是想将后按发送到“当前”活动,对吗?

于 2012-07-11T12:51:20.317 回答
0

试试这个:

super.onBackPressed();
于 2012-07-11T12:41:53.963 回答
0
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        //your code goes here
    }
    return super.onKeyDown(keyCode, event);
}
于 2012-07-11T12:57:15.450 回答