2015-02-19 4 views
0

Я использовал simple_list_item_2 в своем коде для создания listview.Everything работает нормально, но я хочу изменить цвет фона макета. Возможно ли это? Может ли этот макет быть настроен как пользовательский XML?Можно ли настроить simple_list_item_2?

+2

ИМО вы не можете , но вы можете создать другой макет с тем же кодом, а затем заменить фон simple_list_item_2, а затем изменить его с нужным цветом, а затем вместо вызова simple_list_item_2 назовите новый макет, и он будет работать. –

+0

Просто укажите свой собственный макет строки. –

+0

Спасибо за ваш ответ. Я создаю еще один макет – user232803

ответ

1

Просто сделать свой собственный simple_list_item_2, как это, и использовать его вместо

<TwoLineListItem xmlns:android="http://schemas.android.com/apk/res/android" 
    <!-- This is your background color--> 
    android:background="#DC143C" 

    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:minHeight="?android:attr/listPreferredItemHeight" 
    android:mode="twoLine" 
    android:paddingStart="?android:attr/listPreferredItemPaddingStart" 
    android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"> 
     <TextView android:id="@android:id/text1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_marginTop="8dip" 
      android:textAppearance="?android:attr/textAppearanceListItem" /> 
     <TextView android:id="@android:id/text2" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_below="@android:id/text1" 
      android:layout_alignStart="@android:id/text1" 
      android:textAppearance="?android:attr/textAppearanceListItemSecondary" /> 
</TwoLineListItem> 

(Взято из android source code)

+0

спасибо! Я создаю новый макет, основываясь на вашем ответе – user232803

+0

Не забудьте принять мой ответ, если он поможет :-) – JonasCz

+0

Я получаю ошибку в этой строке, так как мой текущий min равен 11. Есть ли что-нибудь еще, чтобы заменить это? android: textAppearance = "? Android: attr/textAppearanceListItem" – user232803

1

ИМО вы не можете, но вы можете создать еще один макет с тем же кодом, а затем замените фон simple_list_item_2, а затем измените его на нужный вам цвет, а затем вместо вызова simple_list_item_2 вызовите новый макет, и он будет работать.

EDIT *

После ответ @JonasCz, вы можете редактировать его и образец кода, чтобы заменить это было бы как:

ListView l = (ListView) findViewById(R.id.listview); 
String[] values = new String[] { "Ubuntu", "Android", "iPhone", 
    "Windows", "Ubuntu", "Android", "iPhone", "Windows" }; 
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, 
    R.layout.your_custom_simple_list_item_2, values); //removed the android. 
viewContainer = findViewById(R.id.undobar); 
l.setAdapter(adapter); 

Код от AndroidListView/article.html