如何自定义Android ListView的每一行?

时间:2011-12-14 12:22:00

标签: java android xml listview customization

我想知道是否可以自定义listview的每一行?我想为几行添加复选框,为另一行添加按钮等。如何为此构建* .xml文件?

提前致谢!

3 个答案:

答案 0 :(得分:1)

您可以编写如下常规布局文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content" android:id="@+id/lineItem">
  <!-- The attribute name -->
  <TextView android:id="@+id/attributeName" android:layout_height="wrap_content"
  android:layout_width="wrap_content" android:layout_alignParentLeft="true"
  android:textStyle = "bold" android:paddingTop = "2dp" android:textSize="16dp"/>

  <!-- The attribute value just beneath the attribute name -->
  <TextView android:id="@+id/attributeValue" android:layout_height="wrap_content"
  android:layout_width="wrap_content" android:layout_alignParentLeft="true"
  android:layout_below="@id/attributeName" android:textSize="12dp"  android:paddingBottom="2dp" />

  <!-- Now create button besides the line with right align -->
  <Button android:layout_width="wrap_content" 
  android:background="@drawable/printbutton" 
  android:layout_height="wrap_content"
  android:id="@+id/printbtn" 
  android:layout_centerInParent="true" android:layout_alignParentBottom="true"></Button>
</RelativeLayout>

然后在你的listview适配器功能

public View getView(final int position, View convertView, ViewGroup parent)

你可以使用

convertView = mInflater.inflate(R.layout.listviewrow,null);

这就是我所做的。

答案 1 :(得分:1)

RFTM Android custom componentsbinding data to a view

这会导致创建自定义适配器(可能来自ListAdapterArrayAdapter)。

您也可以从ListActivity开始。

答案 2 :(得分:0)

是的!可以使用您的布局自定义每一行。(也使用CheckBox) 您需要开发自定义ArrayAdapter。 您可以找到教程here

我希望它对你有用。