как изменить фон у элемента списка.
#39018648
Ссылка:
Ссылка на сообщение:
Ссылка с названием темы:
|
|
|
Здравствуйте, помогите пожалуйста разобраться!
Делал все по примеру тут
В общем у меня есть главная активити, в котором есть список ListView
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
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>
Соответственно заполняю список вот так:
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 в зависимости от определенных условий. В итоге должно получиться так:
Как мне можно реализовать подобное?
Заранее большое спасибо!
Модератор: Добавлены спойлеры.
|
|