2012-02-20 112 views
0

我试图使用mColorPicker和运行它好,它改变了拾取颜色,但我试图让共享偏好来获得新的颜色,所以我可以用它。 到目前为止,这个没有运气,它不会改变颜色,但只保留默认的颜色。 我有偏好在一个单独的文件,并在主要活动是,我希望从中获取的偏好。 继承人什么我在主要活动Android的共享偏好mColorPicker问题

public void onSharedPreferenceChanged(SharedPreferences prefs, String key) { 
    this._blimp.setTopNameColor(prefs.getInt(TOPNAME_COLOR_CHOICE, 0xffffffff)); 
} 

当我使用日志为了这个,我得到这个-1,为0xffffffff是默认的颜色,但它并没有在这里所有的改变。 所以我知道我在这里失去了一些东西,在设置我有这个

@Override 
public boolean onPreferenceClick(Preference preference) { 

    final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(LiveWallpaperSettings.this); 

    final ColorPickerDialog d = new ColorPickerDialog(this, prefs.getInt("top_name_color", 0xffffffff)); 
    d.setAlphaSliderVisible(true); 

    d.setButton("Ok", new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 

      SharedPreferences.Editor editor = prefs.edit(); 
      editor.putInt("top_name_color", d.getColor()); 
      editor.commit(); 

     } 
    }); 

    d.setButton2("Cancel", new DialogInterface.OnClickListener() { 

     @Override 
     public void onClick(DialogInterface dialog, int which) { 

     } 
    }); 

    d.show(); 
    return true; 
} 

这是我从Main.java在mColorPicker了,把它放在我的livewallpapersettings文件,而不是。在这里,它改变了对话窗口的颜色没有问题,但没有在我的主要活动文件的共享首选项中。 这是一个梦幻般的颜色选择器,如果我可以得到它的主要活动工作,并更新的共享偏好所以它实际上改变我的颜色。 我知道这可能是简单的,但希望有人可以帮助我在这里。 在此先感谢。 山姆

回答

0

我已经使用this颜色拾取和它的伟大工程。

在有自己的喜好按钮按下时显示的对话框。

我用

SharedPreferences sharedPreferences = getSharedPreferences(MY_PREFERENCES, Activity.MODE_PRIVATE); 
editor = sharedPreferences.edit(); 

,然后当用户选择颜色

editor.putInt(TEXT_COLOR, color); 
editor.commit(); 

在您的主要活动中,您将通过

prefs = getSharedPreferences(Preferences.MY_PREFERENCES, Activity.MODE_PRIVATE); 
textColor = prefs.getInt(Preferences.TEXT_COLOR, R.color.black); 

希望这有助于使色彩。

+0

非常感谢这一点,我仍然有问题,将其设置在我的喜好,我还是做错了,但我因为这更接近了。再次感谢感激:)山姆 – user870286 2012-02-22 01:48:54

+0

只是为了让你知道我得到了它最后的工作,这是因为在XML这么简单的东西添加一个默认值一样简单,不知道为什么,我很怀念那一个,再次感谢您的帮助 – user870286 2012-02-22 17:57:29

+0

什么缺省值你给color.For,我公司给错误java.lang.ClassCastException:java.lang.String中不能android.app.SharedPreferencesImpl.getInt(SharedPreferencesImpl.java:239)被强制转换为java.lang.Integer中 – 2016-09-14 14:47:19