我的应用程序上有很多图像按钮。
目前我使用.getID()作为我游戏的另一种方法。我也希望自己看到这个ID。
我尝试将Id分配给按钮单击中的文本视图,如下所示
clicker = new OnClickListener(){
@Override
public void onClick(View v){
ImageButton clicked = (ImageButton) v;
makeMove(clicked.getId()); // getting the id of where the person has clicked, and calling makeMove method which is defined below
TextView clickID = (TextView) findViewById(R.id.clickId);
clickID.setVisibility(View.VISIBLE);
clickID.setText(clicked.getId());
}
};
但是我得到了一个nullpointer,
clicked.getId();
还有另一种获取此信息的方法吗?
我也指错了吗?
我对android非常新,并且不知道在哪里转向这个。任何帮助将不胜感激。
感谢。
我的日志猫也是,
02-12 18:23:27.379: E/AndroidRuntime(1042): FATAL EXCEPTION: main
02-12 18:23:27.379: E/AndroidRuntime(1042): java.lang.NullPointerException
02-12 18:23:27.379: E/AndroidRuntime(1042): at com.example.con4.ConnectFourActivity1$2.onClick(ConnectFourActivity1.java:178)
02-12 18:23:27.379: E/AndroidRuntime(1042): at android.view.View.performClick(View.java:4240)
02-12 18:23:27.379: E/AndroidRuntime(1042): at android.view.View$PerformClick.run(View.java:17721)
02-12 18:23:27.379: E/AndroidRuntime(1042): at android.os.Handler.handleCallback(Handler.java:730)
02-12 18:23:27.379: E/AndroidRuntime(1042): at android.os.Handler.dispatchMessage(Handler.java:92)
02-12 18:23:27.379: E/AndroidRuntime(1042): at android.os.Looper.loop(Looper.java:137)
02-12 18:23:27.379: E/AndroidRuntime(1042): at android.app.ActivityThread.main(ActivityThread.java:5103)
02-12 18:23:27.379: E/AndroidRuntime(1042): at java.lang.reflect.Method.invokeNative(Native Method)
02-12 18:23:27.379: E/AndroidRuntime(1042): at java.lang.reflect.Method.invoke(Method.java:525)
02-12 18:23:27.379: E/AndroidRuntime(1042): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
02-12 18:23:27.379: E/AndroidRuntime(1042): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
02-12 18:23:27.379: E/AndroidRuntime(1042): at dalvik.system.NativeStart.main(Native Method)
答案 0 :(得分:1)
我将click.getId放入方法,然后显示它,这样我就可以在logcat中查看id
答案 1 :(得分:0)
你可以用很少的方式做到这一点。如果每个按钮都有单独的监听器,那么您就知道该按钮并可以使用v.getId()
来获取它。如果您拥有一个侦听器,则可以使用switch语句来标识单击哪个侦听器。见Android OnClickListener - identify a button。它解释了一个按钮,但同样适用于ImageButton。