Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/229.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-onListItemClick_Android_Listview - Fatal编程技术网

Android-onListItemClick

Android-onListItemClick,android,listview,Android,Listview,我有一个列表视图,每个列表元素都有一个图像视图和文本视图,如下面的屏幕截图所示。图像和文本视图一起构成可单击元素,因此,如果您点击任何文本的右侧,则不会发生任何事情,您必须点击文本或图像。如何使链接跨越整个列表元素的宽度,基本上是屏幕的右边缘 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_h

我有一个列表视图,每个列表元素都有一个图像视图和文本视图,如下面的屏幕截图所示。图像和文本视图一起构成可单击元素,因此,如果您点击任何文本的右侧,则不会发生任何事情,您必须点击文本或图像。如何使链接跨越整个列表元素的宽度,基本上是屏幕的右边缘

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

    <ImageView
    android:id="@+id/icon"
    android:layout_width="32dp"
    android:layout_height="32dp"
    android:layout_marginLeft="4dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="4dp"
    android:layout_gravity="center|right"
    android:gravity="center|right"
    android:src="@drawable/image5" >
</ImageView>

<TextView
    android:id="@+id/label"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:textSize="20sp"
    android:layout_marginTop="4dp"
    android:layout_gravity="center|right"
    android:gravity="center|right" >
</TextView>
</LinearLayout>



在listview项目布局中,将
textview
的宽度设置为
0dp
,并将
android:layout\u weight=“1”
属性添加到
textview
您可以在Adapters getView方法中进行如下操作:

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

   View vi = convertView;
   if(convertView==null) { ... }
   ...
   vi.setOnClickListener(new OnListItemClickListener(position));
   return vi;
}

private class OnListItemClickListener implements OnClickListener {

   private int mPosition;

   OnListItemClickListener(int pos) {

      this.mPosition = pos;
   }

   @Override
   public void onClick(View arg0) {

      //DO WHATEVER YOU WANT WITH YOUR "CLICK". THE POSITION CLICKED IS STORED INSIDE mPosition.
   }
}

将父级布局
宽度
高度
设置为
匹配父级
/
填充父级

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

    <ImageView
    android:id="@+id/icon"
    android:layout_width="32dp"
    android:layout_height="32dp"
    android:layout_marginLeft="4dp"
    android:layout_marginRight="10dp"
    android:layout_marginTop="4dp"
    android:layout_gravity="center|right"
    android:gravity="center|right"
    android:src="@drawable/image5" >
</ImageView>

<TextView
    android:id="@+id/label"
    android:layout_width="0dp"
    android:layout_height="wrap_content"
    android:layout_weight="1"
    android:textSize="20sp"
    android:layout_marginTop="4dp"
    android:layout_gravity="center|right"
    android:gravity="center|right" >
</TextView>
</LinearLayout>


发布您的项目xml数据。如果mListView是您的ListView实例,请尝试调用:mListView.setOnItemClickListener(this);修复错误,然后在onItemClick()方法中定义操作。很遗憾,您建议的两行没有任何区别。根布局的宽度是多少?..我已添加了布局xml文件。请将线性布局宽度设置为填充。忽略我的上一条注释,我犯了一个键入错误。那会解决的。