我正在使用PreferenceActivity为我的应用程序显示一些设置.我通过xml文件膨胀设置,以便我的onCreate(和完整的类方法)如下所示:
public class FooActivity extends PreferenceActivity {
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
addPreferencesFromResource(R.xml.preference);
}
}
Run Code Online (Sandbox Code Playgroud)
PreferenceActivity PreferenceFragment的javadoc 说明了这一点
当用户与它们交互时,这些首选项将自动保存到SharedPreferences.要检索此活动中的首选项层次结构将使用的SharedPreferences实例,请使用与此活动相同的包中的上下文调用getDefaultSharedPreferences(android.content.Context).
但是我如何在另一个Activity中获得SharedPreference的名称?我只能打电话
getSharedPreferences(name, mode)
Run Code Online (Sandbox Code Playgroud)
在其他活动中但我需要PreferenceActivity使用的SharedPreference的名称.名称是什么或如何检索它?
操作栏兼容性已添加到支持库,修订版18中.它现在具有ActionBarActivity用于在旧版Android上使用操作栏创建活动的类.
有没有办法从支持库添加Action Bar PreferenceActivity?
以前我用ActionBarSherlock,它有SherlockPreferenceActivity.
android preferenceactivity android-actionbar android-support-library
在我升级到支持库v21之后,我的ActionBar PreferenceActivity就消失了.
我是否错过了我的主题中的一些属性来再次激活它?黑色ActionBar我遇到了类似的麻烦.
我还尝试通过添加Toolbar到根布局来添加它有点hackish ,但是这没有按预期工作.
android preferenceactivity android-support-library android-5.0-lollipop
我有一个扩展PreferenceActivity的类,并显示我的应用程序的首选项屏幕.是否可以检查是否对首选项进行了任何更改?
这有助于......
其他相关帖子: SharedPreferences.onSharedPreferenceChangeListener未被一致地调用
public class PreferenceClass extends PreferenceActivity {
OnSharedPreferenceChangeListener listener;
public void onCreate(Bundle savedInstanceState) {
SharedPreferences prefs = this.getSharedPreferences("settings", 0);
listener = new SharedPreferences.OnSharedPreferenceChangeListener() {
public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
int flag = 1;
}
};
prefs.registerOnSharedPreferenceChangeListener(listener);
super.onCreate(null);
addPreferencesFromResource(R.xml.settings);
}
}
Run Code Online (Sandbox Code Playgroud) android preferenceactivity android-preferences sharedpreferences
我想从默认的preferences.xml启动一个Activity,带有<intent>标签.活动经过充分测试,问题不在于此.(我在我的应用程序中扩展了PreferenceActivity,所以preferences.xml"来了")请查看代码,出了什么问题?
的preferences.xml:
....
<PreferenceCategory
android:title="@string/titleEtcSetup">
<PreferenceScreen
android:key="renameCourses"
android:title="@string/titleRenameCourses"
android:summary="@string/textRenameDisplayedCoursesNames">
<intent
android:action="android.intent.action.VIEW"
android:targetPackage="my.notifier.ui"
android:targetClass="my.notifier.ui.EditCoursesNamesActivity" />
</PreferenceScreen>
.....
</PreferenceCategory>
.....
Run Code Online (Sandbox Code Playgroud)
manifest.xml文件:
....
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="my.notifier.ui"....
....
<activity android:name=".EditCoursesNamesActivity" android:label="@string/titleRenameCourses">
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
.....
Run Code Online (Sandbox Code Playgroud)
当我按下"renameCourses项目"时,活动没有调用,没有任何反应.LogCat是"清除",没有错误或警告.我经常搜索,我找不到解决方案,也许我只是错过了一些东西......请帮助!
我想请求一些帮助:在我的应用程序中,我只有一个活动,一个PreferenceActivity(不需要其他活动,它只是一个简单的后台同步应用程序,所以它PrefsActivity是Main/Launcher).在用户设置首选项之后,检查a checkBoxPreference,然后启动(或停止)服务.在开始时,会出现一个对话框.但问题是:如果用户按下(离开活动),再次启动它,然后尝试检查checkBoxPref.,prefsactivity崩溃.对话框没有显示.我不知道为什么,以及如何解决它.
这段代码与那部分完全相同,是什么给了我这个问题:
PrefsActivity.java:
package is.it.works;
// imports .....
public class PrefsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener {
SharedPreferences prefs;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.prefs);
prefs = PreferenceManager.getDefaultSharedPreferences(this);
prefs.registerOnSharedPreferenceChangeListener(this);
}// onCreate
@Override
public void onSharedPreferenceChanged(SharedPreferences preferences, String key) {
if (key.equals("checkTest")) {
showDialog(1);
}
if (key.equals("cancel")) {
dismissDialog(1);
}
}// onSPC
@Override
protected Dialog onCreateDialog(int id) {
switch (id) {
case 1: {
ProgressDialog dialog = new ProgressDialog(this);
dialog.setMessage("press …Run Code Online (Sandbox Code Playgroud) EditTextPreference在我的偏好活动中使用简单的:
<EditTextPreference
android:key="SomeKey"
android:title="@string/some_title"
android:summary="..."
android:numeric="integer"
android:maxLength="2"
/>
Run Code Online (Sandbox Code Playgroud)
有没有办法将此配置值保存为整数?现在似乎只允许输入数字,但该值仍保存为字符串:
呼叫:
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
int value = preferences.getInt("SomeKey", -1);
Run Code Online (Sandbox Code Playgroud)
抛出我java.lang.ClassCastException: java.lang.String,并且:
SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
String value = preferences.getString("SomeKey", "-1");
Run Code Online (Sandbox Code Playgroud)
成功检索值.
如何PreferenceActivity默认将值保存为整数?
是否可以在PreferenceScreen?中创建个人偏好?
我想像这样编码颜色设置:

我知道选择颜色很容易实现ListPreference,但是那种"复选框"会很棒.
android preferenceactivity android-preferences android-layout
任何人都可以告诉我何时使用Checkbox以及何时使用Switch?
我的意思是,在一个上下文中两者之间真正的登录差异是PreferenceActivity什么?
例如,您将下一部分更改为Checkboxes?它是一组的一部分,但在这里使用Switch看起来更好.

我想做的是我正在制作一个生命游戏计划.我想花时间延迟并优先考虑,但我想让人们可以在特定时间输入.数字可以是几毫秒或几秒.
然而,我有点坚持如何继续,我还没有找到一个已经处理过的简单偏好,但可能有一个.是否有一种简单的方法来确定此偏好并确认输入的数据是整数还是漂浮?