所以,我对Android开发有点全新,我正试图通过一个体面的骰子滚动应用程序来推动我的球。我已经看过我正在调用的方法,这似乎不是我编码的问题 - 但是当我点击其中一个图像按钮时(我有一些相同的编码,除了不同的骰子编号) ,该应用程序冻结并将设备启动回菜单(在Galaxy Nexus AVD和实际的三星Galaxy S4设备上测试)。有问题的代码(在fragment_main.xml中定义):
<ImageButton
android:id="@+id/d4ImageButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_weight="1"
android:cropToPadding="false"
android:src="@drawable/d4"
android:onClick="rolld4()" />
以及它试图调用的方法(在main_activity.java中定义)
private int _dice;
protected int dice() {
return _dice;
}
public void rolld4() {
Random rndGen = new Random(System.nanoTime());
_dice = rndGen.nextInt(4);
}
提前感谢您提供的任何帮助!
答案 0 :(得分:3)
将android:onClick="rolld4()"
更改为android:onClick="rolld4"
,并将所需的View
参数添加到rolld4()
。
答案 1 :(得分:1)
使用此:
<ImageButton
android:id="@+id/d4ImageButton"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_weight="1"
android:cropToPadding="false"
android:src="@drawable/d4"
android:onClick="rolld4" />
使用android:onClick="rolld4"
代替android:onClick="rolld4()"
,因为android:onClick只接受没有大括号的函数名称。