Стиль Android ArrayAdapter - PullRequest
       25

Стиль Android ArrayAdapter

1 голос
/ 21 марта 2012

У меня просто вопрос, как бы я изменил цвет фона (или цвет текста) первых 6 символов каждой ячейки в моем списке?(первые 6 символов содержат дату. Пример «Янв 01: данные бла-бла-бла…»)

У меня есть одно представление списка на моей странице, и оно динамически заполняется при вызове веб-службы SOAP

        SoapObject oResponse = (SoapObject)soapEnvelope.getResponse();
        ArrayList<String> oStringList = new ArrayList<String>();
        for(int i = 0; i < oResponse.getPropertyCount(); i++)
        oStringList.add(oResponse.getProperty(i).toString()); 
        lv.setAdapter(new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1, oStringList ));

Любое руководство будет оценено.

Ответы [ 4 ]

0 голосов
/ 21 марта 2012

Я дам вам простое решение для этого.Просто запишите код, чтобы изменить цвет для блока текста в HTML.что-то вроде

String s = "<text color=red>abcdef</text>"+"continuition part will be placed here";

TextView Object.setText(Html.toHtml(s));

Я не знаю точного кода в Html, чтобы точно изменить цвет текста.Просто Google.

Это решит вашу проблему.

0 голосов
/ 21 марта 2012

dldnh ответ правильный, но другим способом было бы располагать TextView рядом друг с другом, один для даты и один для вашего фактического текста. Так что-то вроде этого:

<LinearLayout android/+id="rowLayout" android:width="wrap_content" android:height="wrap_content" android:orientation="horizontal">
    <TextView android/+id="txtDate" android:text="Jan 01" android:textColor="@color/red" android:width="wrap_content" android:height="wrap_content"/>
    <TextView android/+id="txtItem" android:text="blah blah blah" android:layout_marginLeft="5dp" android:width="wrap_content" android:height="wrap_content"/>
</LinearLayout>

Итак, в вашем адаптере переопределите getView(int position, View v) (я почти уверен, что так и было), и вы можете установить текст там.

0 голосов
/ 21 марта 2012

По-вашему, вы должны создать свой собственный ArrayAdapter макет.

В этом новом макете каждый элемент списка просмотра состоит из двух частей: (два текстового обзора), и вы помещаете его в horizontal linearlayout.первый текстовый вид, вы делаете его атрибут, как то, что вы говорите.

0 голосов
/ 21 марта 2012

при настройке текста вашего TextView, вы будете использовать Spannable, чтобы вы могли изменить цвет диапазона. Вот пример установки цвета переднего плана на красный для шести символов. вы будете использовать этот код в getView, а tv - это TextView для этой конкретной ячейки.

TextView tv = ...
String text = "Jan 01: Blah blah blah data data...";
int startColor = 0;
int endColor = 6;
int color = 0xffff0000;
Spannable spannable = new SpannableString(text);
spannable.setSpan(new ForegroundColorSpan(color), startColor, endColor, 0);
tv.setText(spannable);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...