Android 为什么此ImageView的OnClick不起作用?
我真的不知道为什么这不管用,我已经试了一整晚了。。当我点击时,Android 为什么此ImageView的OnClick不起作用?,android,Android,我真的不知道为什么这不管用,我已经试了一整晚了。。当我点击时,ImageView应该减去分数。我也试着把它记录下来,但没有成功。。是不是因为我的动画干扰 这是我的全部XML <TextView android:id="@+id/timer1" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Test" /> <TextVie
ImageView
应该减去分数。我也试着把它记录下来,但没有成功。。是不是因为我的动画干扰
这是我的全部XML
<TextView
android:id="@+id/timer1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Test" />
<TextView
android:id="@+id/score1"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Score:" />
<ImageView
android:id="@+id/imgview1"
android:layout_width="83dp"
android:layout_height="131dp"
android:clickable="true"
android:onClick="PeanutClick"
android:src="@drawable/lil_peanut"/>
编辑;发布的解决方案不起作用。我用整个XML和当前代码更新了代码 我不完全确定单击属性在XML上是如何工作的。但是您可以在Java文件中使用以下内容来完成它
public class GameView extends Activity implements OnClickListener{
ImageView iv;
// whatever else
public void onCreate(...)
{
// ...
iv = (ImageView) findViewById(R.id.imageView1);
iv.setOnClickListener(this);
}
public void onClick(View v)
{
if (v.getId() == R.id.imageView1)
PeanutClick();
}
}
公共空间单击(查看){
分数=分数-100;
mScoreField.setText(“分数:+Score”);
}
public方法应该包含一个View参数。多亏了您的帮助,我才找到了它。
onClick
一直在工作,但只在图像的原始位置上工作
<ImageView
android:id="@+id/imgview1"
android:layout_width="83dp"
android:layout_height="131dp"
android:clickable="true"
android:onClick="PeanutClick"
android:src="@drawable/lil_peanut"/>
使用此XML,只能单击左上角。我通过将
android:layout\u width=“83dp”
更改为android:layout\u width=“fill\u parent”
您在清单中的目标API版本?您的代码是否执行PeanutClick?如果在第一行(score=score-100)放置断点,它会被命中吗?gameviewLayout.xml是什么类型的布局?这是一个偶然的框架布局吗?在某些布局情况下,对象将被遮挡,而不是其所在区域的最前面部分。有些人通过在布局中将对象(本例中为您的ImageVew)进一步向下移动来解决此问题,因此它将位于其他冲突项之上。感谢各位的回复。我的目标是16岁。它不是在执行代码,它是一个线性布局。而且在实现这些函数之后,它仍然不会注册任何onclick事件。。。这是我的全部代码;aaaaaaaaaargh它让我抓狂汉克斯,这使它工作,但只在图像所在的原始位置。但至少onclick起作用了,谢谢!布局高度如何?是否也必须更改?如果更改布局高度以填充父级,则整个屏幕(水平和垂直)都将可以单击。
public void PeanutClick(View view) {
score = score - 100;
mScoreField.setText("Score: " + score);
}
<ImageView
android:id="@+id/imgview1"
android:layout_width="83dp"
android:layout_height="131dp"
android:clickable="true"
android:onClick="PeanutClick"
android:src="@drawable/lil_peanut"/>