列表视图的同一行中的两个可点击项

时间:2014-08-19 12:24:59

标签: android listview

如何在listview中的同一行放置2个项目?

e.g

第1项|第2项

第3项|第4项

第5项|第6项

等等。 我没有绘制它们的问题,并且有很多种方法可以绘制它们。

我的问题:当我点击第1项或第2项时,我无法找到适当的方式听。

另外,我正在考虑简单地制作2个listview,独立填充它们并同时旋转,但我希望有更好的方法。

5 个答案:

答案 0 :(得分:1)

您应该为listView使用自定义适配器。在适配器中,您为每行扩展自己的布局,并侦听每个视图的事件。这是自定义适配器的示例:Custom Adapter for List View

希望它可以帮到你!!

答案 1 :(得分:0)

为每个item添加到listview row布局:

 android:focusable="false"

然后在getView中找到每个item,然后为其分配相应的点击监听器。

答案 2 :(得分:0)

将CustomAdapter用于listview并在集合中添加项目,例如ArrayList。

CustomAdapter adapter=new CustomAdapter(getApplicationContext(),R.id.listview_id,itemlist);

list_item.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="horizontal"
  >


 <TextView android:id="@+id/item1"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="10dip"
    android:textSize="16sp"
    android:textStyle="bold"
    android:textColor="#000000"
    />     

  <TextView android:id="@+id/item2"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:padding="10dip"
    android:textSize="16sp"
    android:textStyle="bold"
    android:textColor="#000000"
    />  

</LinearLayout>

CustomAdapter.java

public class CustomAdapter extends CustomAdapter<String>{

//Declare variables variables here..

public CustomAdapter(Context context, int resource,
        List<String> objects) {
    //initialize and set constructor values here..
}

public static class ViewHolder {
    TextView textitem1;
    TextView textitem2

}

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    // TODO Auto-generated method stub
    View row = convertView;
    ViewHolder holder = null;
    if(null == row) {
        LayoutInflater inflater = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        row = inflater.inflate(R.layout.list_item, parent, false);
        holder = new ViewHolder();
        holder.textitem1 = (TextView) row.findViewById(R.id.item1);
        holder.textitem2 = (TextView) row.findViewById(R.id.item2);

        row.setTag(holder);
    } 

    return view;
}
}

答案 3 :(得分:0)

您可以添加任意数量的TextView。根据要求,您可以改变它们的位置/高度/宽度等。

用于收听Click事件, 对于每个文本视图添加android:clickable =“true” 使用CustomAdapter并在getView方法中为每个TextView设置ClickListeners。

希望这有帮助!

答案 4 :(得分:0)

我找到了适合100%的方式 想法是使用GridView~ instead of ListView`。

 <GridView
            android:id="@+id/gridview"
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:gravity="center"
            android:numColumns="2"
            android:stretchMode="columnWidth" />

事实上,我甚至不需要在原始适配器中更改和单行。 android:numColums设置要显示的列数。你可以在那里放置int或auoto_fit。