在大纲/细节模板中使用"up"按钮时意图丢失



我正在使用在平板电脑上效果很好的Android应用中的主/详细模板。但是,在手机版本中,我在单击ListActivity中单击" UP"按钮时一直在获得nullpointer异常。

调试时,我会发现当单击详细信息片段中的"向上"按钮时,我会返回到父活动(listActivity),然后返回到otCreate()方法。在那里我正在做:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_gamelist);
    String systemStr = getIntent().getStringExtra("systemObj");
    ...
}

但是,当从细节片段返回此时,意图是无效的,因此访问Systemsstr。

当我在详细信息片段中单击" up"以返回列表活动时,我需要做什么才能避免使用此nullpointer异常?如上所述,平板电脑(两个窗格)版本可行,问题仅在手机版本中。

我找不到有关该问题的任何解决方案,因此我最终在详细活动中使用了此代码以避免nullpointer异常:

@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
    // When pressing the UP button in the action bar simulate the "back" button.
    case android.R.id.home:
        onBackPressed();
        return true;
    }
    return super.onOptionsItemSelected(item);
}

至少该解决方案不会崩溃我的应用。

最新更新