单击按钮时Android崩溃。

时间:2014-05-29 13:21:26

标签: java android onclicklistener

所以,我对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); 
 }

提前感谢您提供的任何帮助!

2 个答案:

答案 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只接受没有大括号的函数名称。