add action bar with back button in preference activity

前端 未结 4 2075
遇见更好的自我
遇见更好的自我 2021-01-04 10:00

Here is my preference activity:

package com.example.hms.test;

import android.os.Bundle;
import android.preference.PreferenceActivity;

public class PrefsAct         


        
4条回答
  •  旧巷少年郎
    2021-01-04 10:22

    The answer Pooya gave won't work for a PreferenceActivity. Instead make your class extend AppCompatActivity, and use a PreferenceFragment to load up the preference. Here is my code for settings:

    public class MyPrefsActivity extends AppCompatActivity {
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            getFragmentManager().beginTransaction().replace(android.R.id.content, new MyPreferenceFragment()).commit();
    
            getSupportActionBar().setDisplayShowHomeEnabled(true);
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
    
        }
    
        @Override
        public boolean onSupportNavigateUp(){
            finish();
            return true;
        }
    
        public static class MyPreferenceFragment extends PreferenceFragment {
            @Override
            public void onCreate(final Bundle savedInstanceState) {
                super.onCreate(savedInstanceState);
                addPreferencesFromResource(R.xml.preferences);
            }
        }
    }
    

    Put the activity in your AndroidManifest.XML:

    
    

    And now you can start the settings activity using an intent in my Main Activity (or whichever parent activity you have) as normal:

    Intent prefsIntent = new Intent(activity, MyPrefsActivity.class);
    activity.startActivity(prefsIntent);
    

提交回复
热议问题