android 4.0.3操作栏中的“后退按钮”似乎导致我的应用程序崩溃

时间:2012-10-19 21:19:17

标签: android android-intent crash android-actionbar android-logcat

修改

发生的问题是由于我将清单中的设置活动的父级设置为所有小写,这不是主活动路径的正确格式。


我最初的应用目标是成功实现一个加载并保存按钮(你猜对了)加载并保存数据(到外部SD卡上的文本文件)。成功实现此功能后,我决定使用设置文件来使用共享首选项,该文件将更改为字体大小和颜色。我设置了一个菜单,可以通过意图运行我的设置活动。设置活动是由sdk生成的,但在按下操作栏上的后退按钮后似乎崩溃了。 Screenshots of the appthe logcat file和我的源代码如下。谢谢你的时间!


这是用于启动设置活动的方法。

public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case R.id.menu_settings:
            Intent intent = new Intent(this, SettingsActivity.class);
            startActivity(intent);
            return true;
        default:
            return super.onOptionsItemSelected(item);
    }
}

这是生成的设置活动。

package com.spacemanspiff.savefiles;

import android.os.Bundle;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.support.v4.app.NavUtils;

public class SettingsActivity extends Activity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_settings);
    getActionBar().setDisplayHomeAsUpEnabled(true);
}

@Override
public boolean onCreateOptionsMenu(Menu menu) {
    getMenuInflater().inflate(R.menu.activity_settings, menu);
    return true;
}


@Override
public boolean onOptionsItemSelected(MenuItem item) {
    switch (item.getItemId()) {
        case android.R.id.home:
            NavUtils.navigateUpFromSameTask(this);
            return true;
    }
    return super.onOptionsItemSelected(item);
}

}


1 个答案:

答案 0 :(得分:1)

The crash can be rectified by adding the **android:parentActivityName** in the manifest    file for the child activity.
    E.g.


       <activity
            android:name="com.example.projectlearn.ActivityTwo"
            android:label="@string/title_activity_two"
            android:parentActivityName="com.example.projectlearn.MainActivity" >
        </activity>