2012-02-20 66 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