2014-02-12 131 views
0

我的应用程序中有很多图像按钮。获取点击图像按钮的ID

目前我使用.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()); 

      } 

     }; 

,但我得到了一个空指针,

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

你确定了'NullPointerException'来自行'clicked.getId()'? “ConnectFourActivity1.java”第178行究竟是什么? – TactMayers

回答

0

我把该click.getId到方法,然后显示它,这样我就能查看logcat中的ID

0

您可以在几个方面做到这一点。如果每个按钮都有单独的监听器,那么您知道该按钮,可以使用v.getId()。如果你有一个所有的监听器,那么你可以使用switch语句来识别哪一个被点击。见Android OnClickListener - identify a button。它解释了一个按钮,但它也是一样的ImageButton。