Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/232.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android:使用删除按钮设置ListView_Android_Layout_Android Activity_Android Listview_Android Linearlayout - Fatal编程技术网

Android:使用删除按钮设置ListView

Android:使用删除按钮设置ListView,android,layout,android-activity,android-listview,android-linearlayout,Android,Layout,Android Activity,Android Listview,Android Linearlayout,也有类似的问题,但我还没有看到一个回答这个非常直接的问题:如何使用混合布局设置自定义listview 我正在尝试设置一个列表视图,其中每行都有以下内容: 主文本行、次(子)文本行和删除按钮。另一种方法是在可见空间的页眉或页脚处(但显然在可滚动空间之外)使用delete按钮选择每一行。老实说,在这一点上,哪一个更容易,哪一个更好 剩下的就是设置一个二级布局xml来定义每个行元素,但在这个布局中,我正在寻找另一个布局来将按钮与文本布局的垂直方向分开 以下是我当前的代码: <?xml versi

也有类似的问题,但我还没有看到一个回答这个非常直接的问题:如何使用混合布局设置自定义listview

我正在尝试设置一个列表视图,其中每行都有以下内容:

主文本行、次(子)文本行和删除按钮。另一种方法是在可见空间的页眉或页脚处(但显然在可滚动空间之外)使用delete按钮选择每一行。老实说,在这一点上,哪一个更容易,哪一个更好

剩下的就是设置一个二级布局xml来定义每个行元素,但在这个布局中,我正在寻找另一个布局来将按钮与文本布局的垂直方向分开

以下是我当前的代码:

<?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="fill_parent"
  android:orientation="vertical" >
  <ListView android:layout_height="wrap_content"
    android:layout_width="fill_parent"
    android:choiceMode="multipleChoice"
    android:id="@+id/android:list"/>  
</LinearLayout>

每行的布局如下所示:

<?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="wrap_content"
  android:orientation="vertical">
  <TextView android:id="@+id/line_a"
    android:textSize="14dp"
    android:textColor="#FFFFFF"
    android:textStyle="italic"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"/>
  <TextView android:id="@+id/line_b"
    android:textSize="12dp"
    android:textColor="#BFFF00"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"/>
</LinearLayout>

这将为ListView中的每一行设置一个漂亮的多色两级文本

那么接下来呢?要在右侧添加按钮,我需要设置另一个布局(网格?可能是2列1行?)并在右侧添加按钮?另一种选择是将现有的垂直线性布局包裹在另一个具有水平方向的线性布局中,是吗


这对其他人来说似乎不尴尬和痛苦吗?:)

创建列表视图和阵列适配器:

listView = (ListView) findViewById(R.id.listView);
listViewArrayAdapter listViewArrayAdapter = new listViewArrayAdapter(this, values);
listView.setAdapter(listViewArrayAdapter);
然后创建一个内部类:

public class ListViewArrayAdapter extends ArrayAdapter<Value> {

    Context context;
    Value[] values;

    public ListViewArrayAdapter(Context context, Value[] values) {
        super(context, R.layout.layout_with_list, values);
        this.values = values;
        this.context = context;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        convertView = inflater.inflate(R.layout.list_item, parent, false);

        TextView titleTextView = (TextView) convertView.findViewById(R.id.titleTextView);
        titleTextView.setText(values[position].getName());
            // If you have buttons in your list_item.xml, you can inflate them an then create a listener for them

        return convertView;

    }
}
公共类ListViewArrayAdapter扩展了ArrayAdapter{
语境;
价值[]价值;
公共ListViewArrayAdapter(上下文上下文,值[]值){
super(上下文、R.layout.layout_和_列表、值);
这个值=值;
this.context=上下文;
}
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
LayoutFlater充气器=(LayoutFlater)context.getSystemService(context.LAYOUT\u充气器\u服务);
convertView=充气机。充气(R.layout.list_项,父项,false);
TextView titleTextView=(TextView)convertView.findViewById(R.id.titleTextView);
titleTextView.setText(值[position].getName());
//如果list_item.xml中有按钮,则可以将其放大,然后为其创建一个侦听器
返回视图;
}
}

为什么不使用相对布局,这是我3小时前做的。这是我的ItemRow代码。我认为更棘手的是在哪里处理这个按钮的onClick方法。在我的代码中,第二个图像是remove按钮,即image whit onClick方法。我扩展了ArrayAdapter,因为我希望此图像仅在编辑模式下可见,就像在Iphone中删除联系人项目一样

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/layout_item"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView android:id="@+id/image_list_icon"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true"
    android:contentDescription="@string/image_view"
    android:src="@drawable/clock_white" />
<TextView android:id="@+id/text_list_label"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:layout_toRightOf="@id/image_list_icon"
    android:paddingLeft="5dp"
    android:text="@string/hello_world" />
<ImageView android:id="@+id/image_list_remove"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:contentDescription="@string/image_view"
    android:src="@drawable/remove" />  
<TextView android:id="@+id/text_list_time"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_centerInParent="true"
    android:layout_toLeftOf="@id/image_list_remove"
    android:paddingRight="10dp"
    android:text="@string/text_x" /> 

谢谢阿里。我假设我正在膨胀的“列表项”布局对应于我在上面共享的行布局?