“首选项”菜单中Android向上/向后导航的动态父活动

时间:2014-09-29 13:45:01

标签: android navigation android-actionbar preferences

我的Android应用中的选项菜单中有偏好设置。 我在 ActionBar 上启用了Up \ Back导航,我需要回到上一个调用Options菜单的活动。 对于Preference活动,我可以在清单中使用:

机器人:parentActivityName = “mypackage.com.MainActivity”

但是如何回到其他活动?选项菜单从4个不同的活动中调用。

public class Prefs extends PreferenceActivity {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    addPreferencesFromResource(R.xml.preferences);


    ActionBar actionBar = getActionBar();
    // Enabling Up / Back navigation
    actionBar.setDisplayHomeAsUpEnabled(true);


}

}

3 个答案:

答案 0 :(得分:1)

确保您已在清单中声明父活动,如此...

<activity
            android:name="com.myapp.SetPreferenceActivity"
            android:parentActivityName="com.myapp.MainActivity"
            >

然后确保将案例添加到onOptionsItemSelected方法...

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        // Respond to the action bar's Up/Home button
        case android.R.id.home:
            //Take me back to the main activity
            NavUtils.navigateUpFromSameTask(this);
            return true;
        }
        return super.onOptionsItemSelected(item);
    }

如果您希望将向上按钮指向自定义活动,则可以使用意图。

 @Override
        public boolean onOptionsItemSelected(MenuItem item) {
            switch (item.getItemId()) {
            // Respond to the action bar's Up/Home button
            case android.R.id.home:
                Intent changeActivity = new Intent(this,OtherActivity.class);
      startActivity(changeActivity);

                return true;
            }
            return super.onOptionsItemSelected(item);
        }

答案 1 :(得分:0)

“后退”按钮的默认行为是它会让您返回到调用活动。当用户导航应用程序时,系统维护一系列活动。你需要覆盖这个功能吗?请更具体一点。

答案 2 :(得分:0)

以这种方式解决:

@Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case android.R.id.home:
              finish();

        }
        return true;

    }