2014-10-14 4 views
0

Я использую Edittexts в своем приложении. но не могут установить цвет фона во время выполнения. Если я делаю что-то неправильно, пожалуйста, предложите.Невозможно изменить цвет цвета фона EditText динамически

Я принял три edittexts, которые должны изменить их цвет в соответствии с кодировкой, используемой в цикле do while. проверьте и выполните ответ ASAp. заранее спасибо.

вот мой код.

public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 



      List<Map<String,String>> list = new ArrayList<Map<String,String >>(); 
      EditText ed1 = (EditText) findViewById(R.id.name); 
      EditText ed2 = (EditText) findViewById(R.id.age); 
      EditText ed3 = (EditText) findViewById(R.id.date); 
      Map<String,String> map = new HashMap<String, String>(); 

      int i = 2; 
      EmpDatabase empClick = new EmpDatabase(getApplicationContext()); 
      Cursor cursor = empClick.getDetails(); 
      if(cursor.moveToFirst()){ 
       do{ 
        i= i+1; 
        if(i % 2 == 0) 
        { 
         // here is something wrong 
         ed1.setBackgroundColor(Color.BLUE); 
         ed2.setBackgroundColor(Color.BLUE); 
         ed3.setBackgroundColor(Color.BLUE); 

        } 
        else 
        { 
         // here is something wrong 
         ed1.setBackgroundColor(Color.CYAN); 
         ed2.setBackgroundColor(Color.CYAN); 
         ed3.setBackgroundColor(Color.CYAN); 
        } 
        map = new HashMap<String, String>(); 
        String name = cursor.getString(cursor.getColumnIndex("name")); 
        String age = cursor.getString(cursor.getColumnIndex("age")); 
        String time = cursor.getString(cursor.getColumnIndex("time")); 
        map.put("name",name); 
        map.put("age",age); 
        map.put("time", time); 
        list.add(map); 

       }while(cursor.moveToNext()); 
       cursor.close(); 
      } 


      SimpleAdapter adapter = new SimpleAdapter(this, list, R.layout.text_view, new String [] {"name", "age", "time"}, new int[] {R.id.name,R.id.age, R.id.date}); 
      setListAdapter(adapter); 

    } 
+0

hii просто используйте setbackground insted of color, а также setcontent view –

+0

Проверьте, что курсор перемещен в первую очередь. Может быть, если условие не atisfying. – Shvet

+0

проблема с курсором. Я взял целое число i, чтобы изменить цвет. – Sangeeta

ответ

0

У меня есть ответ на эту проблему. я сделал класс адаптера, который расширяет простой адаптер .. и написать следующий код ..

public class EmpCustomAdapter extends SimpleAdapter{ 

    private int[] colors = new int[] { 0x30FF0000, 0x300000FF }; 

    public EmpCustomAdapter(Context context, List<Map<String, String>> list, int resource, String[] from, int[] to) { 
     super(context, list, resource, from, to); 
    } 

    @Override 
    public View getView(int position, View convertView, ViewGroup parent) { 
     View view = super.getView(position, convertView, parent); 
     int colorPos = position % colors.length; 
     view.setBackgroundColor(colors[colorPos]); 
     return view; 
    } 
} 

и сделать свой объект и установить адаптер ..

EmpCustomAdapter adapter = new EmpCustomAdapter(this, list, R.layout.text_view, new String [] {"name", "age", "time"}, new int[] {R.id.name,R.id.age, R.id.date}); 
      setListAdapter(adapter); 

и он работал .. :) спасибо всем, кто помог мне избавиться от этой проблемы .. :) Не могу загрузить результат изображения из-за проблемы с репутацией. :(

1

Где ваш вызов setContentView (YOUR_LAYOUT), в основном без этого макета в не генерируется даже еще генерируется, так findViewById (R.id.name) приведет в никуда.

+0

Я думаю, что это просто ошибка копирования пасты, если ОП забыл setContentView, он ничего не увидит. Но он описал это, как будто вместо этого нет изменения цвета. – Opiatefuchs

+0

нет проблемы с компоновкой .. кроме этого, она работает правильно, если я удалю, если else условие .., но не знаю, почему этот цвет фона не меняется. – Sangeeta

+0

Единственная правдоподобная причина, по которой я вижу иначе, - это пустой курсор. – Techfist