2013-07-20 21 views
14

Próbuję ustawić tekst kolor tła przy użyciu text1.setBackgroundColor(Color.rgb(r,g,b));jak ustawić kolor rgb w systemie Android?

były czerwone, zielone, wartości niebieskie pochodzą z bazy danych na podstawie wartości i ustawić r=128,g=255,b=128 programowo to kolor był tępy zielony ale uruchomić program będzie wyświetlany kolor czerwony

for(int i = 0; i < list.length(); i++){ 
      JSONObject c = list.getJSONObject(i); 

      // Storing each json item in variable 
      // String GRPCODE = c.getString(TAG_GRPCODE); 
      String GRPNAME = c.getString(TAG_GRPNAME); 
      String QTY = c.getString(TAG_QNT); 
      String BUDGET = c.getString(TAG_BUDGET); 
      String STOCK = c.getString(TAG_STOCK); 
      String DIFF = c.getString(TAG_DIFF); 
      String DIFF_P = c.getString(TAG_DIFF_P); 

      COLOR = c.getString(TAG_COLOR); 

      /*String[] ARGB = COLOR.split(" "); 

      String V1=ARGB[0]; 
      String V2=ARGB[1]; 
      String V3=ARGB[2]; 
      String V4=ARGB[3]; 

      a=Integer.parseInt(V1); 
      r=Integer.parseInt(V2); 
      g=Integer.parseInt(V3); 
      b=Integer.parseInt(V4);*/ 


      HashMap<String, String> map = new HashMap<String, String>(); 

      // adding each child node to HashMap key => value 
      // map.put(TAG_GRPCODE, GRPCODE); 
      map.put(TAG_GRPNAME, GRPNAME); 

      map.put(TAG_QNT, QTY); 
      map.put(TAG_BUDGET, BUDGET); 
      map.put(TAG_STOCK, STOCK); 
      map.put(TAG_DIFF, DIFF); 
      map.put(TAG_DIFF_P, DIFF_P); 

      map.put(TAG_COLOR,COLOR); 
      //map.put(TAG_PHONE_MOBILE, mobile); 

      // adding HashList to ArrayList 
      contactList.add(map); 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
    /** 
    * Updating parsed JSON data into ListView 
    * */ 
    ListAdapter adapter = new SimpleAdapter(this, datatList, 
      R.layout.list_item, 
      new String[] { TAG_GRPNAME, TAG_QNT, TAG_BUDGET, TAG_STOCK, TAG_DIFF, TAG_DIFF_P, }, 
      new int[] { 
        R.id.l2, R.id.l3, R.id.l4, R.id.l5, R.id.l6, R.id.l7}){ 
     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      View v = convertView; 
      if (v == null) { 
       LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       v = vi.inflate(R.layout.list_item, null); 
      } 
       text1 = (TextView) v.findViewById(R.id.l7); 


      HashMap<String, String> map=dataList.get(position); 
      map.get(TAG_COLOR); 
      String[] ARGB = COLOR.split(" "); 
      String V1=ARGB[0]; 
      String V2=ARGB[1]; 
      String V3=ARGB[2]; 
      String V4=ARGB[3]; 
      a=Integer.parseInt(V1); 
      r=Integer.parseInt(V2); 
      g=Integer.parseInt(V3); 
      b=Integer.parseInt(V4); 

      text1.setBackgroundColor(Color.rgb(r,g,b)); 

      return super.getView(position, v, parent); 
     } 
    }; 
+0

umieść oświadczenie dziennika przed setbackgroundcolor, sprawdź, czy wartości są tym, co chcesz –

+0

@OnurA. przed ustawieniem koloru sprawdzenie poprawności – ibu

+2

Twoje poglądy mają ten sam kolor? ponieważ w pętli for za każdym razem wartości r, g, b zmieniają widoki przy użyciu ostatniej wartości koloru z db –

Odpowiedz

21

wreszcie mam odpowiedzieć

ListAdapter adapter = new SimpleAdapter(this, dataList, 
      R.layout.list_item, 
      new String[] { TAG_GRPNAME, TAG_QNT, TAG_BUDGET, TAG_STOCK, TAG_DIFF, TAG_DIFF_P, }, 
      new int[] { 
        R.id.l2, R.id.l3, R.id.l4, R.id.l5, R.id.l6, R.id.l7}){ 
     @Override 
     public View getView(int position, View convertView, ViewGroup parent) { 
      View v = convertView; 
      if (v == null) { 
       LayoutInflater vi = (LayoutInflater) getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
       v = vi.inflate(R.layout.list_item, null); 
      } 
       text1 = (TextView) v.findViewById(R.id.l7); 

       String rgbColor= dataList.get(position).get(TAG_COLOR); 
       String[] ARGB = rgbColor.split(" ");  
       a=Integer.parseInt(ARGB[0]); 
       r=Integer.parseInt(ARGB[1]); 
       g=Integer.parseInt(ARGB[2]); 
       b=Integer.parseInt(ARGB[3]);       
       text1.setBackgroundColor(Color.rgb(r, g, b)); 
       return super.getView(position, v, parent); 
      } 

    }; 
Powiązane problemy