可点击的ImageView在列表视图上

时间:2014-02-09 06:05:34

标签: android android-layout android-listview

我有一个包含listview的应用。我想在listview的一部分上放置一个imageview。当我为imageview设置onclick Listener时没有任何反应。如何制作图像视图是可点击的,而不是列表视图中与图像视图重叠的区域。

imageview“id / imagemenu”应该是可点击的 XML:

    <?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
 android:layout_width="match_parent"
android:layout_height="match_parent" >

 <RelativeLayout 
android:layout_width="match_parent"
 android:layout_alignParentTop="true"
  android:layout_height="wrap_content" >

<ImageView
    android:id="@+id/imagemenu"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
   android:layout_centerVertical="true"
    android:layout_alignParentLeft="true"

    android:src="@drawable/menub" />

<ImageView
    android:id="@+id/imageView2"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentTop="true"
    android:layout_centerHorizontal="true"
    android:src="@drawable/header" />

<ImageView
    android:id="@+id/imageView3"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_alignParentRight="true"
    android:src="@drawable/camerab" />

 </RelativeLayout>

<ListView
    android:id="@+id/listView1"

    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:layout_alignParentLeft="true" >

</ListView>

</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

您忘了添加选择器,请检查一下。

<ImageButton
  android:id="@+id/imageButton"
  android:layout_width="wrap_content"
  android:layout_height="wrap_content"
  android:src="@drawable/selector" />

相应的选择器文件如下所示:

<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item android:drawable="@drawable/ico_100_checked" android:state_selected="true"/>
<item android:drawable="@drawable/ico_100_unchecked"/>
</selector>

在我的onCreate中,我打电话给:

final ImageButton ib = (ImageButton) value.findViewById(R.id.imageButton);

OnClickListener ocl =new OnClickListener() {
    @Override
    public void onClick(View button) {
        if (button.isSelected()){
            button.setSelected(false);
        } else {
            ib.setSelected(false);
            //put all the other buttons you might want to disable here...
            button.setSelected(true);
        }
    }
};

ib.setOnClickListener(ocl);
//add ocl to all the other buttons

希望这有帮助。