在ImageView onClick期间未调用的方法

时间:2012-08-31 18:18:03

标签: android xml imageview

我正在尝试开发功能,用户可以在其中单击图像以选择要在单击的同一视图上上传的图像。我将ImageView定义如下

    <ImageView
     style = "@style/DefaultButton"
     android:id="@+id/choose_img"
     android:layout_width="wrap_content"
     android:layout_height="wrap_content"
     android:layout_centerHorizontal="true"
     android:layout_marginTop="46dp"
     android:clickable="True"
     android:adjustViewBounds="true"
     android:onClick="chooseImg"
     android:contentDescription="@string/description_logo"
     android:src="@drawable/user2" />

方法chooseImg如下

    public void chooseImg(View view){
        Toast.makeText(this, "Choose Image from Gallery", Toast.LENGTH_SHORT).show();
        Intent chimg = new Intent(Intent.ACTION_GET_CONTENT);
        chimg.setType("image/*");
        startActivityForResult(chimg,CHOOSE_IMAGE_REQUEST_CODE);
    }

该方法未被调用。请帮助我了解原因。谢谢:)。

2 个答案:

答案 0 :(得分:2)

android:onClick调用的方法必须与您要执行的方法相匹配...但onClick上的方法为captureImg,活动中的方法名称为chooseImg 。将这些更改为相同的方法名称,它应该可以解决您的问题。另见我的评论。

答案 1 :(得分:1)

卡斯帕是对的。我想补充一点,你可以让Activity本身实现View.OnClickListener接口

onClick(查看v) {     if(v.getId()==(ImageView的Id))      {             captureImg();      }

}

或者作为一个匿名的内星级。