смутно ставить цвет в Listview - PullRequest
0 голосов
/ 23 июня 2011

У меня есть Показать массив в списке. с черным цветом текста.

если я использую android.R.color.black, это даст ошибку во время выполнения.

это мой код.

list1 =(ListView)findViewById(R.id.scoreView1);
        list2 = (ListView)findViewById(R.id.scoreView2);

    for (int i = 1; i <= 3; i++) {
        datalist1.add("Qustion "+ i + "   Correct");
    }
    for (int i = 4; i <= 6; i++) {
        datalist2.add("Qusetion "+ i + "  Correct");
    }



    list1.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,R.color.TextColor,datalist1));
    list2.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,android.R.id.text1,datalist2));

мой XML:

<resources>

<color name="Background">#E2E2E2</color>
<color name="TextColor">#040404</color>
<color name="White">#FFFFFF</color>
<color name="Black">#000000</color>
<color name="Red">#FF0000</color>
<color name="Green">#4AA02C</color>

</resources>

Есть предложения?

Ответы [ 2 ]

1 голос
/ 23 июня 2011

list1.setAdapter (новый ArrayAdapterthis, android.R.layout.simple_list_item_1, R.color.TextColor, datalist1));

Вы используете конструктор для адаптера массива.Третий аргумент:

textViewResourceId Идентификатор TextView в ресурсе макета, который нужно заполнить

, и вы предоставляете TextColor.Вы должны предоставить идентификатор макета.

0 голосов
/ 21 июня 2014

Я некоторое время занимался той же проблемой.Вместо использования собственного адаптера я продолжал использовать Android.Resource.Layout.TwoLineListItem для моего адаптера представления.Мой хакерский способ добиться динамического изменения цвета текста - объявить фиктивное текстовое представление в методе GetView ListViewAdapter.

пример кода здесь:

TextView tmptxt = view.FindViewById<TextView> (Android.Resource.Id.Text2);
tmptxt.Text = glt.Genre; // my source for the displayed text in the second line of the listview item.
tmptxt.SetTextColor(Android.Graphics.Color.LightGreen);
glt.Genre = tmptxt.Text;
view.FindViewById<TextView> (Android.Resource.Id.Text1).Text = glt.Title;
view.FindViewById<TextView> (Android.Resource.Id.Text2).Text = (glt.Genre);  // now displayed with lightgreen text color
return view;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...