动态添加一个按钮和复选框到我的列表视图?

时间:2011-11-07 07:14:51

标签: android

我有一个列表视图,显示手机中所有联系人的姓名 我希望,只需单击一个按钮,复选框就会出现在列表视图中的每一行的前面。点击一次列表视图中的任何一项,删除按钮应出现在相应行的前面。

这是我的布局文件:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
  xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="fill_parent"
  android:layout_height="fill_parent">
    <ListView android:layout_height="350dp" android:id="@android:id/list" android:layout_width="fill_parent" android:layout_alignParentTop="true" android:layout_alignParentLeft="true" android:layout_marginTop="35dp">

    </ListView>

    <Button android:id="@+id/button1" android:layout_height="35dp" android:text="Button" android:layout_width="70dp" android:layout_alignParentTop="true" android:layout_alignParentLeft="true"></Button>

    <TextView android:id="@+id/textView1" android:textAppearance="?android:attr/textAppearanceMedium" android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="Favourites" android:layout_alignParentRight="true" android:layout_toRightOf="@+id/button1" android:layout_alignBottom="@+id/button1" android:layout_alignParentTop="true" android:gravity="center"></TextView>

</RelativeLayout>


我从这个文件中获取了我的文本视图:

<?xml version="1.0" encoding="utf-8"?>
 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="?android:attr/listPreferredItemHeight"
    android:padding="6dip">

    <RelativeLayout
        android:orientation="vertical"
        android:layout_width="0dip"
        android:layout_weight="0.96" android:layout_height="73dp">
        <TextView
            android:id="@+id/textView_name"
            android:layout_height="0dip"
            android:gravity="center_vertical"
        android:layout_weight="1" android:layout_width="218dp"/>

    </RelativeLayout>
</LinearLayout>  

1 个答案:

答案 0 :(得分:2)

您必须将CheckBox添加到xml-File并使其不可见。 然后在listViewAdapter的getView中添加一个代码片段,以使CheckBox可见或不可见(例如,布尔变量为false或true)。 现在,如果您更改这些变量,只需在过滤器适配器上调用notifyDataSetChanged();