可以自定义simple_list_item_2吗?

时间:2015-02-19 10:57:23

标签: android android-layout android-listview customization

我在我的代码中使用了simple_list_item_2来创建listview.Everything工作正常,但我想改变布局的背景颜色。这可能吗?这个布局是否也可以像用户定义的XML一样进行自定义?

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

IMO你不能,但你可以使用相同的代码创建另一个布局,然后替换simple_list_item_2的背景,然后用你想要的颜色更改它,然后代替调用simple_list_item_2打电话给你的新布局,它会起作用。

编辑*

根据@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