我使用活动组在一个标签下的多个活动之间导航。
然而,当我进入第一个子活动并按回来时,我收到以下错误:
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?
答案 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);
}