2014-09-26 121 views
0

這是我第一次嘗試使用AmbilWarna(Android Color Picker),所以請耐心等待。AmbilWarna - 偏好設置 - 設置顏色

我想使用首選項來爲我的textview設置顏色。這裏是我做了什麼:

將Settings.xml

<?xml version="1.0" encoding="utf-8"?> 
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" > 

    <PreferenceCategory android:title="@string/prefs_color_heading" /> 

    <yuku.ambilwarna.widget.AmbilWarnaPreference 
     android:defaultValue="0xff000000" 
     android:key="display_foreground_color" 
     android:title="Pick a color for text" 
     app:supportsAlpha="true" /> 

    <!-- --> 

    <yuku.ambilwarna.widget.AmbilWarnaPreference 
     android:defaultValue="0xfffff380" 
     android:key="display_background_color" 
     android:title="Pick a color for background" 
     app:supportsAlpha="true" /> 

</PreferenceScreen> 

SettingsFragment:

public class SettingsFragment extends PreferenceFragment implements 
     OnPreferenceClickListener { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setRetainInstance(true); 

     addPreferencesFromResource(R.xml.settings); 

     findPreference(Const.Prefs.DISPLAY_FOREGROUND_COLOR) 
       .setOnPreferenceClickListener(this); 
     findPreference(Const.Prefs.DISPLAY_BACKGROUND_COLOR) 
       .setOnPreferenceClickListener(this); 

    } 

    @Override 
    public boolean onPreferenceClick(Preference preference) { 
     if (preference.getKey().equals(Const.Prefs.DISPLAY_FOREGROUND_COLOR)) { 
      return true; 
     } else if (preference.getKey().equals(
       Const.Prefs.DISPLAY_BACKGROUND_COLOR)) { 
      return true; 
     } 

     return false; 
    } 
} 

當我在首選項點擊,例如 「選擇文本顏色」,我獲取顏色選擇器對話框以從中選擇顏色。我選擇顏色,顏色以「int」形式返回。現在我的問題是,我不明白如何將此返回的int值設置爲我的textview。

這裏是INT從日誌返回:

09-26 11:50:14.440: D/AVCP(24815): Foreground Color: -5954010 

如何設置這個中斷我的TextView?

+0

我不知道爲什麼它downvoted,但我猜,不知道如何閱讀返回的int是不是一種罪過。無論如何,看看如何設置它的下面的答案。直截了當! – 2014-09-26 06:44:42

回答

0

您可以直接將它設置爲TextView的...

int foreground_color = prefs.getInt(
       Const.Prefs.DISPLAY_FOREGROUND_COLOR, 0); 

tvExpression = (TextView) findViewById(R.id.textView_expression); 
     tvExpression.setTextColor(foreground_color);