2015-07-28 78 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));