Гость
Форумы / Android [игнор отключен] [закрыт для гостей] / как изменить фон у элемента списка. / 5 сообщений из 5, страница 1 из 1
29.07.2015, 14:05
    #39018648
VaneS Ri_lax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как изменить фон у элемента списка.
Здравствуйте, помогите пожалуйста разобраться!
Делал все по примеру тут
В общем у меня есть главная активити, в котором есть список ListView
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">

    <ListView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:id="@+id/racelist" />

</RelativeLayout>


Для каждого элемента списка я использую item.xml
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
113.
114.
115.
116.
117.
118.
119.
120.
121.
122.
123.
124.
125.
126.
127.
128.
129.
130.
131.
132.
133.
134.
135.
136.
137.
138.
139.
<?xml version="1.0" encoding="utf-8"?>
<TableLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:id="@+id/index_item"
    android:shrinkColumns="*"
    android:stretchColumns="*"
    >


    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:background="#bfbfbf"
        android:id="@+id/title_zag">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="МОСКВА (ВНУКОГО) - ОРЕНБУРГ"
            android:id="@+id/textView7"
            android:layout_span="3"
            android:layout_gravity="center_horizontal"
            android:textColor="#000000"
            android:textStyle="bold" />
    </TableRow>

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="план взлета"
            android:id="@+id/textView"
            android:textColor="#000000"
            android:textStyle="bold"
            android:layout_column="1" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="план посадки"
            android:id="@+id/textView2"
            android:textColor="#000000"
            android:textStyle="bold"
            android:layout_column="2" />

    </TableRow>

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal"
        android:id="@+id/race">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="1235"
            android:id="@+id/textView4"
            android:layout_column="0"
            android:theme="@style/TextColor"
            android:layout_marginLeft="10dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="30.07.15 09:00"
            android:id="@+id/textView5"
            android:layout_column="1"
            android:theme="@style/TextColor" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="29.07.15 15:00"
            android:id="@+id/textView6"
            android:layout_column="2"
            android:theme="@style/TextColor" />
    </TableRow>

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="100dp"
            android:layout_height="match_parent"
            android:text="приземлился"
            android:id="@+id/textView13"
            android:layout_column="0"
            android:theme="@style/TextColor"
            android:layout_marginLeft="10dp" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="факт взлета"
            android:id="@+id/textView8"
            android:layout_column="1"
            android:textColor="#000000"
            android:textStyle="bold" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="факт посадки"
            android:id="@+id/textView9"
            android:layout_column="2"
            android:textColor="#000000"
            android:textStyle="bold" />
    </TableRow>

    <TableRow
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="30.07.15 09:15"
            android:id="@+id/textView10"
            android:layout_column="1"
            android:theme="@style/TextColor" />

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="30.07.15:00"
            android:id="@+id/textView11"
            android:layout_column="2"
            android:theme="@style/TextColor" />
    </TableRow>

</TableLayout>


Соответственно заполняю список вот так:
Код: java
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
    // имена атрибутов для Map
    final String ATTRIBUTE_NAME_UP = "up";
    //final String ATTRIBUTE_NAME_DOWN = "down";
    final String ATTRIBUTE_DATE_UP = "date_up";
    final String ATTRIBUTE_DATE_DOWN = "date_down";
    final String ATTRIBUTE_DATE_UP_FACT = "date_up_fact";
    final String ATTRIBUTE_DATE_DOWN_FACT = "date_DOWN_fact";
    final String ATTRIBUTE_RACE = "race";
    final String ATTRIBUTE_STATUS = "status";

 protected void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

// массивы данных
        String[] up = { "МОСКВА (ВНУКОГО)", "МОСКВА (ВНУКОГО)", "МОСКВА (ВНУКОГО)",
                "МОСКВА (ВНУКОГО)", "МОСКВА (ВНУКОГО)" };
        String[] down = {"ОРЕНБУРГ", "ОРЕНБУРГ", "ОРЕНБУРГ", "ОРЕНБУРГ", "ОРЕНБУРГ"};

        String[] date = {"28.07.15", "29.07.15", "31.07.15", "02.08.15", "05.08.15"};

        String[] date_up = {"09:00", "09:00", "09:00", "09:00", "09:00"};
        String[] date_down = {"12:00 +", "12:00" ,"12:00" ,"12:00" ,"12:00 +"};


        String[] date_up_fact = {"09:00", "09:00", "09:00", "09:00", "09:00"};
        String[] date_down_fact = {"12:00 +", "12:00" ,"12:00" ,"12:00" ,"12:00 +"};

        String[] race = {"5821", "5823", "5820", "5826", "5937"};
        String[] status = {"регистрация", "посадка", "задержка", "вылетел", "приземлился"};
 // упаковываем данные в понятную для адаптера структуру
        ArrayList<Map<String, Object>> data = new ArrayList<Map<String, Object>>(
                up.length);
        Map<String, Object> m;
        for (int i = 0; i < up.length; i++) {
            m = new HashMap<String, Object>();

            m.put(ATTRIBUTE_NAME_UP, up[i]+" - "+ down[i]+"  "+date[i]);
            m.put(ATTRIBUTE_DATE_UP, date_up[i]);
            m.put(ATTRIBUTE_DATE_DOWN, date_down[i]);

            m.put(ATTRIBUTE_DATE_UP_FACT, date_up_fact[i]);
            m.put(ATTRIBUTE_DATE_DOWN_FACT, date_down_fact[i]);

            m.put(ATTRIBUTE_RACE, race[i]);
            m.put(ATTRIBUTE_STATUS, status[i]);





            data.add(m);
        }

        // массив имен атрибутов, из которых будут читаться данные
        String[] from = {
                ATTRIBUTE_NAME_UP,
                ATTRIBUTE_DATE_UP, ATTRIBUTE_DATE_DOWN,
                ATTRIBUTE_DATE_UP_FACT, ATTRIBUTE_DATE_DOWN_FACT,
                ATTRIBUTE_RACE, ATTRIBUTE_STATUS,


        };
        // массив ID View-компонентов, в которые будут вставлять данные
        int[] to = { R.id.textView7,
                R.id.textView5, R.id.textView6,
                R.id.textView10, R.id.textView11,
                R.id.textView4, R.id.textView13

        };

        // создаем адаптер
        SimpleAdapter sAdapter = new SimpleAdapter(this, data, R.layout.item,
                from, to);

        // определяем список и присваиваем ему адаптер
        ListView lvSimple = (ListView) findViewById(R.id.racelist);
        lvSimple.setAdapter(sAdapter);
}


Список заполняется, все работает, но вот в каждом item.xml есть TableRow который имеет id title_zag
Мне нужно как то изменить у него background в зависимости от определенных условий. В итоге должно получиться так:

Как мне можно реализовать подобное?
Заранее большое спасибо!

Модератор: Добавлены спойлеры.
...
Рейтинг: 0 / 0
29.07.2015, 14:34
    #39018696
wadman
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как изменить фон у элемента списка.
Простой ответ: http://startandroid.ru/ru/uroki/vse-uroki-spiskom/109-urok-50-simpleadapter-ispolzuem-viewbinder.html

Но правильнее это дело (данные) засунуть в базу и написать свой адаптер.
...
Рейтинг: 0 / 0
29.07.2015, 14:54
    #39018732
VaneS Ri_lax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как изменить фон у элемента списка.
Данные пока забил в массив для теста, в дальнейшем они будут браться с удаленного сервера
...
Рейтинг: 0 / 0
29.07.2015, 15:01
    #39018736
Джибс
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как изменить фон у элемента списка.
getViewType
...
Рейтинг: 0 / 0
30.07.2015, 08:54
    #39019227
VaneS Ri_lax
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
как изменить фон у элемента списка.
wadmanПростой ответ: http://startandroid.ru/ru/uroki/vse-uroki-spiskom/109-urok-50-simpleadapter-ispolzuem-viewbinder.html

Спасибо, разобрался! Вы мне очень помогли!
...
Рейтинг: 0 / 0
Форумы / Android [игнор отключен] [закрыт для гостей] / как изменить фон у элемента списка. / 5 сообщений из 5, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]