标签: preferences

Cocoa - NSUserDefaults值的变化通知?

假设我有一个密钥@"MyPreference",通过NSUserDefaults存储相应的值.

修改值时有没有办法通知?

或者可以通过绑定来完成?(但是这种情况下,我不希望将值绑定到UI元素,而是希望我的对象被通知更改,以便我可以执行其他任务.)

我知道可以观察到NSUserDefaultsDidChangeNotification,但这似乎是一种全有或全无的方法,并且似乎没有一种机制来获取被修改的特定键值对.(随意纠正.)

cocoa notifications preferences

52
推荐指数
3
解决办法
2万
查看次数

Windows 7中存储的Java首选项在哪里?

我们在一些应用程序中使用Java首选项,并没有真正注意到这一点,因为调用的实用程序相当陈旧并且是在Windows XP中编写的.但似乎Java首选项不再存储在Windows 7的注册表中 - 或者它们存储在不同的地方.

我期待它在:

HKEY_LOCAL_MACHINE\SOFTWARE\JavaSoft\Prefs

但我不认为那里.

更糟糕的是,当我运行这个应用程序时:

public static void main( final String[] args ) throws BackingStoreException {

    Preferences systemRoot = Preferences.systemRoot();
    Preferences preferences = systemRoot.node( "com/mycompany/settings" );

    systemRoot.put( "foo", "bar" );
    systemRoot.put( "baz", "lolz" );
    System.out.println( "-------------------------------" );

    String[] keys = preferences.keys();
    for( String key : keys ) {
        System.out.println( key );
    }

    System.out.println( "-------------------------------" );

    keys = systemRoot.keys();
    for( String key : keys ) {
        System.out.println( key );
    }
}
Run Code Online (Sandbox Code Playgroud)

它实际写(我可以评论推出并再次运行它,它的工作原理)但我没有在注册表中看到新的密钥.

此外,我似乎无法在任何地方看到这一点.提前致谢.

编辑#1重要的唯一原因是设置的变化取决于它运行的环境.这就是说,通过手动插入注册表项然后进行一些检查来模拟该环境通常很有用.

我是以管理员身份运行的,但我没有在注册表中看到我期望它们的密钥.

java preferences windows-7

48
推荐指数
3
解决办法
5万
查看次数

保存用户偏好的最佳方法?

我已经看到两种不同的方法来保存用户首选项.

方法1: 序列化它们并保存在USERS表的一列中

方法2: 创建一个单独的表PREFERENCES并从USERS到PREFERENCES建立一个has_many关联.

您更喜欢上述两种方法中的哪一种,以及每种方法的优缺点是什么?

ruby-on-rails preferences

46
推荐指数
3
解决办法
9217
查看次数

Java首选项存储在Mac OS X上的哪个位置?

在Windows上,您在应用程序中从java.util.prefs.Preferences访问的Java首选项存储在注册表中.哪些存储在Mac OS X上?

java macos preferences

43
推荐指数
2
解决办法
5万
查看次数

使用ActionBar Sherlock的首选项屏幕

我正在使用Android应用程序ActionBarSherlock.我的问题是制作首选屏幕.在onBuildHeader()对方法SherlockPreferenceActivity类nerver调用.

这是我的代码

preference_headers.xml

<preference-headers xmlns:android="http://schemas.android.com/apk/res/android" >
<header
    android:fragment="package.fragments.MyPreferenceFragment"
    android:icon="@drawable/bulle"
    android:summary="An example of some preferences."
    android:title="title" />

</preference-headers>
Run Code Online (Sandbox Code Playgroud)

的preferences.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
    android:title="@string/options" >

    <PreferenceCategory>
        <SwitchPreference
            android:id="@+id/cb_notif"
            android:defaultValue="false"
            android:key="com.vincent.HTC_Dev.pref.notif"
            android:summaryOff="@string/notifications_off"
            android:summaryOn="@string/notifications_on"
            android:title="@string/notifications" />
    </PreferenceCategory>

</PreferenceScreen>
Run Code Online (Sandbox Code Playgroud)

MyPreferenceActivity

public class MyPreferenceActivity extends SherlockPreferenceActivity {


    @Override
    public void onBuildHeaders(List<Header> target) {
        super.onBuildHeaders(target);

        loadHeadersFromResource(R.xml.preference_headers, target);
    }

}
Run Code Online (Sandbox Code Playgroud)

MyPreferenceFragment

public class MyPreferenceFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener {

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

        addPreferencesFromResource(R.xml.preferences);
        getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
    }

    @Override …
Run Code Online (Sandbox Code Playgroud)

android preferences actionbarsherlock

39
推荐指数
2
解决办法
1万
查看次数

Android共享首选项不保存

我创建了一个Android的动态壁纸,我试图让用户选择从他们的手机图像并把它作为背景图像,但是当我发起的活动,开始有意挑选图片,我的共享偏好唐好像保存得当.

下面是我当用户按下优选项按钮,我开始活动的onCreate方法,并获得设备上的图像的路径onActivityResult(一切似乎工作).提交首选项后的println什么都没打印出来.

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

    Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
    photoPickerIntent.setType("image/*");
    startActivityForResult(photoPickerIntent, SELECT_PICTURE);
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    super.onActivityResult(requestCode, resultCode, data);

    if (resultCode == RESULT_OK) {
        if (requestCode == SELECT_PICTURE) {
            Uri selectedImageUri = data.getData();
            selectedImagePath = getPath(selectedImageUri);

            preferences = getApplicationContext().getSharedPreferences(PREFERENCES_NAME, 0);
            preferences.edit().putString(SETTINGS_BACKGROUND_IMAGE, "okok");
            preferences.edit().commit();

            System.out.println("Image" + preferences.getString(SETTINGS_BACKGROUND_IMAGE, ""));
        }
    }

    finish();
}
Run Code Online (Sandbox Code Playgroud)

android wallpaper preferences preference

38
推荐指数
2
解决办法
4万
查看次数

如何以编程方式删除PreferenceCategory?

我需要以编程方式删除PreferenceCategory.我可以使用以下代码删除个人首选项,但我还需要删除(禁用)整个PreferenceCategory.

PreferenceScreen preferenceScreen = getPreferenceScreen();
EditTextPreference etp = (EditTextPreference) preferenceScreen.findPreference("pref22");
((PreferenceGroup) findPreference("prefcat")).removePreference(etp);
Run Code Online (Sandbox Code Playgroud)

编辑:这是PreferenceCategory"prefcat"和子偏好"pref22"的工作代码:

PreferenceScreen preferenceScreen = getPreferenceScreen();
EditTextPreference etp = (EditTextPreference) preferenceScreen.findPreference("pref22");

PreferenceGroup preferenceGroup = (PreferenceGroup) findPreference("prefcat");
if (preferenceGroup != null) {
    preferenceGroup.removePreference(etp);
    preferenceScreen.removePreference(preferenceGroup);
}
Run Code Online (Sandbox Code Playgroud)

android preferences

36
推荐指数
3
解决办法
2万
查看次数

维护一组通用的Eclipse首选项

每当我切换工作区/ Eclipse安装时,我都需要复制/重做首选项:

  • 编译器设置;
  • 字体大小/家庭;
  • 代码格式化程序;
  • java代码模板;
  • 编辑模板;
  • 代码清理;

我想以统一的方式维护这些设置,最好是在源代码管理下.我怎样才能做到这一点?


我在创建新工作区时了解"复制设置",但它不会保留更新的副本.

eclipse settings preferences

33
推荐指数
2
解决办法
1万
查看次数

选项卡在eclipse中选择自动完成项?

我在Eclipse 3.6.2中的Preferences-> General-> Keys中找不到autocompleteintellisense这个术语.

在编写代码时,我不想按Enter键选择自动完成项.我可以将Eclipse配置为使用选项卡按钮接受自动完成项吗?

eclipse configuration intellisense autocomplete preferences

33
推荐指数
2
解决办法
3万
查看次数

Android:找不到处理Intent错误的Activity?它将如何解决

找不到活动来处理Intent错误?它将如何解决.

Preference customPref = (Preference) findPreference("DataEntryScreen"); 
   customPref
        .setOnPreferenceClickListener(new OnPreferenceClickListener() {
         public boolean onPreferenceClick(Preference preference) {                  

        Intent i = new Intent("com.scytec.datamobile.vd.gui.android.AppPreferenceActivity");
                 startActivity(i);
                  return true;                                        
               }
           });
Run Code Online (Sandbox Code Playgroud)

android preferences android-intent onitemclicklistener android-activity

33
推荐指数
3
解决办法
9万
查看次数