如何在listview multichoice中将位置设置为复选框

时间:2014-07-11 17:02:51

标签: android listview checkbox position

我需要将复选框放在listview的左侧(multichoice)。 这应该很简单,但我无法完成。

<LinearLayout
   android:layout_width="match_parent"
   android:layout_height="wrap_content"
   android:layout_weight="1"
   android:orientation="vertical" >

   <TextView
       android:id="@+id/lblTipoSolucionTarea"
       android:layout_width="wrap_content"
       android:layout_height="wrap_content"
       android:layout_marginLeft="22dp"
       android:layout_marginRight="10dp"
       android:gravity="right|center_vertical"
       android:text="Tareas:"
       android:textAppearance="?android:attr/textAppearanceMedium"
       android:textColor="#7c3808"
       android:textSize="22sp" />

       <ListView
           android:id="@+id/lstTipoSolucionTarea"
           android:layout_width="wrap_content"
           android:layout_height="145dp"
           android:layout_marginLeft="20dp"
           android:background="@android:drawable/list_selector_background"
           android:choiceMode="multipleChoice"
           android:scrollbarStyle="outsideOverlay" >
        </ListView>
</LinearLayout>

ArrayAdapter ListViewAdapterTarea = new ArrayAdapter(oPadre,android.R.layout.simple_list_item_multiple_choice,lTipoSolucion.get(0).getTiposSolucionTareas())

{
    public View getView(int position, View convertView, ViewGroup parent)
    {
        View v = super.getView(position, convertView, parent);
        ((TextView) v).setTypeface(oPadre.goFontBold);
        ((TextView) v).setTextSize(lblTipoSolucionTarea.getTextSize());                             
        return v;
    }
};
lstTipoSolucionTarea.setAdapter(ListViewAdapterTarea);

谢谢

此致

1 个答案:

答案 0 :(得分:1)

您的ArrayAddapter使用左侧有复选框的android.R.layout.simple_list_item_multiple_choice。要解决您的问题,您可以定义自己的布局。下面的代码段可以解决您的问题。将其另存为row_item.xml并与listview适配器一起使用。

<LinearLayout
   xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="wrap_content"
   android:layout_height="match_parent"
   android:orientation="horizontal">

   <CheckBox
     android:id="@+id/chbox"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_gravity="center_vertical"/>

   <TextView
     android:id="@+id/title"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_gravity="center_vertical"/>
</LinearLayout>

请注意,您必须填充getView()方法中的所有字段。

希望有所帮助:)