我正在尝试开发功能,用户可以在其中单击图像以选择要在单击的同一视图上上传的图像。我将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);
}
该方法未被调用。请帮助我了解原因。谢谢:)。
答案 0 :(得分:2)
android:onClick
调用的方法必须与您要执行的方法相匹配...但onClick上的方法为captureImg
,活动中的方法名称为chooseImg
。将这些更改为相同的方法名称,它应该可以解决您的问题。另见我的评论。
答案 1 :(得分:1)
卡斯帕是对的。我想补充一点,你可以让Activity本身实现View.OnClickListener接口
onClick(查看v) { if(v.getId()==(ImageView的Id)) { captureImg(); }
}
或者作为一个匿名的内星级。