AppCompatPreferenceActivity和SettingActivity的区别是什么?

时间:2016-02-18 12:21:22

标签: java android android-studio android-preferences android-settings

我在我的应用上添加了SettingActivity,我得到了这个自动生成的java文件AppCompatPreferenceActivity.javaSettingsActivity.java

这两者的区别是什么?我遇到了以下链接,但它没有讨论。

Preference

我不知道在哪里编码。

2 个答案:

答案 0 :(得分:3)

似乎我比赛迟到了,但无论如何。请这个窗台帮忙。

  

<强> 1。放置代码的位置(答案)

SettingsActivity.java

不要乱用AppCompatPreferenceActivity.java。您想要更改的所有内容都应该在SettingsActivity.java类中编码。

  

2.什么是AppCompatPreferenceActivity.java(ANSWER)

使用设置活动时,要创建的类就像:

public class SettingsActivity extends PreferenceActivity {
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
    }
}

如果我们想要支持Android的上层版本,我们使用

public class SettingsActivity extends AppCompatPreferenceActivity {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.preferences);
        }
    }

我认为你已经看过这个库android-support-v4,android-support-v7等等,它们都是为了支持上层SDK(例如4,7以上版本等)。而这堂课就是他们的一员。

答案 1 :(得分:2)

如果你想要一个页面设置,你不需要创建general_pref.xml,我已经创建了一些东西供你更好地理解(应该适合你):

  

RES / XML /的preferences.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
    <PreferenceCategory
        android:title="pref_title_notifications"
        android:key="pref_category_notifications_key">
        <CheckBoxPreference
            android:defaultValue="false"
            android:key="notifications_on_off_key"
            android:title="pref_title_breaking_news_notification"/>

        <CheckBoxPreference
            android:defaultValue="true"
            android:key="notifications_sound_on_off_key"
            android:title="pref_title_enable_notifications_sound"/>
    </PreferenceCategory>

    <PreferenceCategory
        android:title="pref_title_data"
        android:key="pref_category_data_key">
        <CheckBoxPreference
            android:defaultValue="true"
            android:key="pref_images_load_on_off_key"
            android:title="pref_title_load_images_on_mobile_data"/>
    </PreferenceCategory>

</PreferenceScreen>
  

ActivitySettings.java

public class ActivitySettings extends Activity {
    @Override
    protected void onCreate(Bundle savedStateInstanceState) {
        super.onCreate(savedStateInstanceState);

        // Display fragment as main content
        getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit();
    }

    public static class SettingsFragment extends PreferenceFragment {
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            addPreferencesFromResource(R.xml.preferences);  //load preference screen from xml directory.
        }
    }
}

修改

*

  

这就是默认设置活动在平板电脑中的样子

* enter image description here

  

和电话

enter image description here

  

所有更改后,您的平板电脑设置将类似于手机设置,   没有别的。现在设置看起来像长列表,而不是标题,   你有类别。如你所见,在最后一张图片中,类别   系统设置

enter image description here