onClick对话框中列表视图中的imageview

时间:2013-12-17 17:02:56

标签: java android

我似乎无法从扩展Fragment的类中获取imageview上的onClick事件。我在这做错了什么?我对Android开发相对较新..

目前,这个代码给了我一个空指针异常 - 当我添加onClickListener代码

这是我的代码:

ImageView mImageView = (ImageView) v.findViewById(R.id.option_icon);
    mImageView.setOnClickListener(new OnClickListener() {
       @Override
       public void onClick(View arg0) {

    }
});

这些图标放在列表视图中,该列表视图放在对话框中:

对话框的列表视图和按钮:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent">
    <ListView android:id="@+id/preset_list_view" 
        android:layout_height="wrap_content" 
        android:layout_width="fill_parent"/>
    <Button
        android:id="@+id/dialogButtonOK"
        android:layout_width="300dp"
        android:layout_height="wrap_content"
        android:text="@string/ok"
        android:layout_marginTop="5dp"
        android:layout_marginRight="5dp"
        android:layout_below="@+id/image"/>
</LinearLayout>

列表视图中的项目(imageview和textview):

<?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" >

        <ImageView
        android:id="@+id/option_icon"
        android:clickable="true"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignParentRight="true"
        android:layout_alignParentTop="true"
        android:src="@drawable/ic_launcher" 
        />
    <TextView
        android:id="@+id/option_text"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_toLeftOf="@+id/image"
        android:layout_alignParentLeft="true"
        android:layout_alignParentTop="true"
        android:textSize="20dp" />
</RelativeLayout>

2 个答案:

答案 0 :(得分:1)

必须是你试图在任何v所指的范围之外找到它的ImageView。

如果图像视图在列表视图中,那么您应该从适配器中添加onClickListener

答案 1 :(得分:0)

imageView无法访问您要查找的v。如果imageView位于主布局中,则在不使用findViewById的情况下使用v,先使view充气,然后使用view.findViewById