Java AppCompativePreferenceActivity和SettingActivity的区别是什么?
我在我的应用程序上添加了Java AppCompativePreferenceActivity和SettingActivity的区别是什么?,java,android,android-studio,android-preferences,android-settings,Java,Android,Android Studio,Android Preferences,Android Settings,我在我的应用程序上添加了SettingActivity,我得到了自动生成的java文件appcompatipreferenceactivity.java和SettingsActivity.java 两者有什么区别?我看到了下面的链接,但没有讨论 我不知道在哪里编码 看来我比赛迟到了,但无论如何。希望这能有所帮助 1。在哪里放置代码(答案) SettingsActivity.java 不要弄乱AppCompativePreferenceActivity.java。您想要更改的每件事情都应该在se
SettingActivity
,我得到了自动生成的java文件appcompatipreferenceactivity.java
和SettingsActivity.java
两者有什么区别?我看到了下面的链接,但没有讨论
我不知道在哪里编码 看来我比赛迟到了,但无论如何。希望这能有所帮助 1。在哪里放置代码(答案) SettingsActivity.java 不要弄乱AppCompativePreferenceActivity.java。您想要更改的每件事情都应该在setingsactivity.java类中进行编码 2.appcompatipreferenceactivity.java是什么(答案) 使用设置活动时,要创建的类如下所示:
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等等)。这个类就是这样。看,不需要创建general_pref.xml如果您想要单页设置,我已经创建了一些东西让您更好地理解(应该适合您): res/xml/preferences.xml 编辑 * 这就是Tablet中默认设置活动的外观 * 在电话里 所有更改后,您的平板电脑设置将与手机设置相同, 现在设置看起来像一个长列表,而不是标题, 你会有分类。如你们所见,在最后一张图片中,我们看到了 系统设置
两者的区别是什么?
前者也与较旧的操作系统版本兼容。@HrundiV.Bakshi-您的意思是设置活动适用于较旧的操作系统,AppCompativePreference适用于API我的意思是设置活动适用于较新的操作系统。我应该看到两者的代码。我仍然在使用Eclipse,目标是API级别18(我不喜欢Android Studio和API级别19+)FARID-我可以删除pref_头和pref_notifications.xml吗?并创建一个pref_general.xml。谢谢您,但我的问题是如何去掉作为默认值加载的pref_头。我创建了一个SettingsActivity,即提供了模板的SettingsActivity,它自动生成AppCompatPrefences。将您的默认SttingsActivity.java替换为post中的一个,将preferences.xml替换为post中的一个,然后删除所有其他默认pref\uz。。。xml,包括pref_header.xml。这应该行得通。(如果我明白你的意思)最后一个问题:)谢谢你的帮助和信息-如果我删除pref_header.xml-它说它是用于平板电脑的。编辑后查看上面的答案。谢谢,我决定不选择AS提供的模板。我手动创建了一个。:)
<?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>
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.
}
}
}