java - 操作栏后退键返回主页

标签 java android android-settings

我创建了一个“设置”页面。页面上有一个后退操作栏。但当点击它时,应用程序将关闭。我希望它从单击的位置返回到上一页。这里给出了一些解决方案。但他们都不适合我。请帮助我解决问题,因为我是初学者。我还添加了 java 代码。

public class SettingsActivity extends AppCompatPreferenceActivity {

 private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() {
    @Override
    public boolean onPreferenceChange(Preference preference, Object value) {
        String stringValue = value.toString();

        if (preference instanceof ListPreference) {
            // For list preferences, look up the correct display value in
            // the preference's 'entries' list.
            ListPreference listPreference = (ListPreference) preference;
            int index = listPreference.findIndexOfValue(stringValue);

            // Set the summary to reflect the new value.
            preference.setSummary(
                    index >= 0
                            ? listPreference.getEntries()[index]
                            : null);

        } else if (preference instanceof RingtonePreference) {
            // For ringtone preferences, look up the correct display value
            // using RingtoneManager.
            if (TextUtils.isEmpty(stringValue)) {
                // Empty values correspond to 'silent' (no ringtone).
                preference.setSummary(R.string.pref_ringtone_silent);

            } else {
                Ringtone ringtone = RingtoneManager.getRingtone(
                        preference.getContext(), Uri.parse(stringValue));

                if (ringtone == null) {

                    preference.setSummary(null);
                } else {
                    String name = ringtone.getTitle(preference.getContext());
                    preference.setSummary(name);
                }
            }

        } else {                
            preference.setSummary(stringValue);
        }
        return true;
    }
};

private static boolean isXLargeTablet(Context context) {
    return (context.getResources().getConfiguration().screenLayout
            & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE;
}
private static void bindPreferenceSummaryToValue(Preference preference) {

    preference.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener);

    sBindPreferenceSummaryToValueListener.onPreferenceChange(preference,
            PreferenceManager
                    .getDefaultSharedPreferences(preference.getContext())
                    .getString(preference.getKey(), ""));
}

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    getFragmentManager().beginTransaction().replace(android.R.id.content,
            new NotificationPreferenceFragment()).commit();

    getSupportActionBar().setDisplayShowHomeEnabled(true);
    getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}

@TargetApi(Build.VERSION_CODES.HONEYCOMB)
public static class NotificationPreferenceFragment extends PreferenceFragment {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.pref_notification);
        setHasOptionsMenu(true);                   
       bindPreferenceSummaryToValue(findPreference("notifications_new_message_ringtone"));
    }

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        int id = item.getItemId();
        if (id == android.R.id.home) {
            startActivity(new Intent(getActivity(), SettingsActivity.class));
            return true;
        }
        return super.onOptionsItemSelected(item);
    }
}
}

最佳答案

不要finish()之前的 Activity 或MainActivity

关于java - 操作栏后退键返回主页,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51387979/

相关文章:

java - 为什么 httpbuilder 没有给出准确的 JSON 输出?

android - 在上下文操作中使用导航会引发异常

安卓测试 : updating listview in a broadcast receiver onreceive

java - Android,Java,创建保持纵横比的缩略图

java - 从加载的类中获取字节码

java - 我的日志记录去哪里了?

java - 安卓游戏角色扮演库存系统

Android偏好设置,自定义EditTextPreference

android - Google Play Services如何弹出Enable Bluetooth提示?

android - 检测应用程序后台 Activity 是否受到限制