2015-05-08 2 views
0

Я хотел был бы изменить цвет текста только одного деталя в listview.Изменить цвет указанного элемента в списке для android

Это изменение будет вызвано результатом работающей асинтезы.

До сих пор я искал в google, и все, что я нашел, это перезаписать функцию getView() адаптера, но этот подход является довольно трудным, так как мне нужно будет поддерживать идентификатор строк, которые я хочу поместить в глобальная переменная, к которой будет обращаться getView().

Есть ли другой способ просто установить цвет текста элемента из списка при возникновении события?

EDIT

Я создаю ListView таким образом:

myListView = (ListView) findViewById(R.id.listView); 
listAdapter = new ArrayAdapter<String>(this, R.layout.simplerow); 
listAdapter.add("test"); 
myListView.setAdapter(listAdapter); 
+0

Как вы создаете свой ListView? Если путем создания списка SimpleCursorAdapter вы можете изменить цвет с помощью ((TextView) view) .setTextColor (Color.RED); – Jacky

ответ

0

Для установка цвета для элемента списка, безусловно, вам необходимо переопределить метод getView()Adapter. Ниже приведен небольшой пример обновления цвета элемента списка без использования идентификатора элемента.

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, R.layout.simplerow) { 
       @Override 
       public View getView(int position, View convertView, ViewGroup parent) { 
        View view = super.getView(position, convertView, parent); 
        if (position % 2 == 0) { //Place the condition where you want to change the item color. 
         view.setBackgroundColor(Color.GRAY); 
        } else { 
         //Setting to default color. 
         view.setBackgroundColor(Color.WHITE); 
        } 
        return view; 
       } 
      }; 

В приведенном выше примере, весь элемент списка на четной позиции будет GREY цвета и другие будут WHITE цветом. Мы не сможем сделать это без внедрения getView(). Для справки Click Here

0

Вы можете установить пользовательский объект визави цвет в адаптере затем изменить цвет в этом адаптере и вызывать notifyDataSetChanged()

+0

Я новичок в программировании на Android ... не совсем понял ваш ответ. То, что вы говорите, означает перезаписать getView(). Я хотел знать, есть ли другой способ. – user1934513

Смежные вопросы