2013-10-18 47 views
0

主要我已经打了一个问题撞毁我的应用程序和logcat的写这篇:致命异常:在TextView的

10-18 13:13:13.950:E/AndroidRuntime(748):致命异常:主要E:// AndroidRuntime(748):android.content.res.Resources $ NotFoundException:字符串资源ID#0x0 10-18 13:13:13.950:E/AndroidRuntime(748):at android.content.res.Resources.getText(Resources.java:239) 10-18 13:13:13.950:E/AndroidRuntime(748):at android.widget.TextView.setText(TextView.java:3844) 10 -18 13:13:13.950:E/AndroidRuntime(748):at com.example.lightalarmclock.AddBox.onClick(AddBox.java:89) 10-18 13:13:13.950:E/AndroidRuntime(748):at android.view.View.performClick(View.java:4240) 10-18 13:13:13.950:E/AndroidRuntime(748):at android.view.View $ PerformClick.run(View.java:17721) 10-18 13:13:13.950:E/AndroidRuntime(748):at android.os.Handler.handleCallback(Handler.java:730) 10 -18 13:13:13.950:E/AndroidRuntime(748):at android.os.Handler.dispatchMessage(Handler.java:92) 10-18 13:13:13.950:E/AndroidRuntime(748):at android。 os.Looper.loop(Looper.java:137) 10-18 13:13:13.950:E/AndroidRuntime(748):at android.app.ActivityThread.main(ActivityThread.java:5103) 10-18 13: 13:13.950:E/AndroidRuntime(748):在java.lang.reflect.Method.invokeNative(本地方法) 10-18 13:13:13.950:E/AndroidRuntime(748):at java.lang.reflect.Method .invoke(Method.java:525 ) 10-18 13:13:13.950:E/AndroidRuntime(748):at com.android.internal.os.ZygoteInit $ MethodAndArgsCaller.run(ZygoteInit.java:737) 10-18 13:13:13.950:E/AndroidRuntime(748):at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) 10-18 13:13:13.950:E/AndroidRuntime(748):at dalvik.system.NativeStart.main (本机方法)

我的应用程序更新按键上的文字,有点像一个机器人闹钟应用程序(4.3)加在按按钮报警,当它发送它们从左至右。

于是我想出了以下内容:

if (pos1 == 0) { 
      TextView Pos1 = (TextView)findViewById(R.id.TextView05); 
      Pos1.setText("1"); 
      pos1 = 1; 
     } else { 

      //Moving all positions for a one 
      TextView Pos1 = (TextView)findViewById(R.id.TextView04); 
      Pos1.setText(pos3); 
      pos4 = pos3; 
      TextView Pos2 = (TextView)findViewById(R.id.TextView03); 
      Pos2.setText(pos2); 
      pos3 = pos2; 
      TextView Pos3 = (TextView)findViewById(R.id.TextView01); 
      Pos3.setText(pos1); 
      pos2 = pos1; 

      //imputing 
      TextView Pos5 = (TextView)findViewById(R.id.TextView05); 
      Pos5.setText("1"); 

      pos1 = 0; 
     } 

而引起该问题的部分是在“其他”语句//将所有位置的评论是部分在游戏崩溃。 因此,在应用程序GUI中,按数字1,它在最右侧绘制而不是0(此部分工作),然后再次按1,其配偶将前一个移动到左侧,并在最右侧添加另一个1,但此崩溃我的应用程序。

我试图解决它和谷歌它,但我只是无法弄清楚。

回答

0

你必须提供一个字符串给setText,否则android会在Resource中查找一个id为你提供的整数的字符串。所以,你必须改变

Pos1.setText(pos3); 

Pos1.setText(String.valueOf(pos3)); 
-1

您的pos3,pos2被引用为int R.string。你必须将它们转换为文本然后设置文本

0

不要直接给整数值的setText方法,因为值应该是一个字符串。如果value是整数,那么android将开始寻找带有id的资源字符串(你提供的整数)。

Pos1.setText(“”+ pos3);

Pos1.setText(Integer.toString(POS3));