2015-07-28 103 views
0

当我单击它时,找不到有关更改背景颜色的任何信息,并使用单击的颜色更改所有活动/片段的背景。用列表颜色更改背景颜色

我有这样的时刻对模型:

public static ColorHandler getInstanceColor(){ 

     return mInstanceColor; 

    } 

    public ColorHandler(Context context){ 
     mInstanceColor=this; 
     colorPreferences = context.getSharedPreferences(mypreference, Context.MODE_PRIVATE); 
     if (colorPreferences.contains("colorPref")){ 
      currentColor = (String) colorPreferences.getAll().get("colorPref"); 
     } 
     else{ 
      currentColor = Red; 
     } 
    } 


    public String getColor(){ 

     return currentColor; 

    } 

    public void setColor(String colory){ 

     //currentColor= colory; 
     SharedPreferences.Editor editor = colorPreferences.edit(); 
     editor.clear(); 
     editor.putString("colorPref",colory); 
     editor.commit(); 

对于控制器:

private ListView listColor; 
private String[] mStrings = {"BlueLight", "BlueDark", "GreenLigth", "GreenDark", "OrangeLigth", "OrangeDark","PinkLigth","PinkDark","GrayLigth","GrayDark","RedLigth","RedDark","HiddenLigth","HiddenDark"}; 
private ColorHandler choiceColor; 

    choiceColor = new ColorHandler(getActivity()); 

    listColor.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 

      String colory = (String) (listColor.getItemAtPosition(i)); 

      choiceColor.setColor(colory); 
      String colorDesigned = (String)ColorHandler.getInstanceColor().getColor(); 
      LinearLayout ll; 
      ll = (LinearLayout) getView().findViewById(R.id.mon_layout); 
      ll.setBackgroundColor(Color.parseColor()); 
      Toast.makeText(getActivity(), ColorHandler.getInstanceColor().getColor(),Toast.LENGTH_LONG).show(); 

     } 
    }); 

而且我想改变这些颜色colors.xml背景:

<color name="BlueLight">#5C9EED</color> 
<color name="BlueDark">#4A8CDB</color> 
<color name="GreenLigth">#42CC6F</color> 
<color name="GreenDark">#3BB75D</color> 
<color name="OrangeLigth">#FAB154</color> 
<color name="OrangeDark">#F49B42</color> 
<color name="PinkLigth">#EC87C0</color> 
<color name="PinkDark">#D770AD</color> 
<color name="GrayLigth">#606873</color> 
<color name="GrayDark">#3E464F</color> 
<color name="RedLigth">#ED5F55</color> 
<color name="RedDark">#D84C43</color> 
<color name="HiddenLigth">#A5ADB8</color> 
<color name="HiddenDark">#838992</color> 

感谢您的帮助

回答

0

我想你已经错过下面这行

ll.setBackgroundColor(Color.parseColor()); 

你需要把在parseColor所选择的颜色串色串。因此请尝试更换以下产品线

ll.setBackgroundColor(Color.parseColor(colorDesigned));