我遇到了崩溃我的应用并将其写在logcat上的问题:
10-18 13:13:13.950:E / AndroidRuntime(748):致命异常:主要 10-18 13:13:13.950:E / AndroidRuntime(748):android.content.res.Resources $ NotFoundException:String resource ID#0x0 10-18 13:13:13.950:E / AndroidRuntime(748):在android.content.res.Resources.getText(Resources.java:239) 10-18 13:13:13.950:E / AndroidRuntime(748):在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):在android.view.View.performClick(View.java:4240) 10-18 13:13:13.950:E / AndroidRuntime(748):在android.view.View $ PerformClick.run(View.java:17721) 10-18 13:13:13.950:E / AndroidRuntime(748):在android.os.Handler.handleCallback(Handler.java:730) 10-18 13:13:13.950:E / AndroidRuntime(748):在android.os.Handler.dispatchMessage(Handler.java:92) 10-18 13:13:13.950:E / AndroidRuntime(748):在android.os.Looper.loop(Looper.java:137) 10-18 13:13:13.950:E / AndroidRuntime(748):在android.app.ActivityThread.main(ActivityThread.java:5103) 10-18 13:13:13.950:E / AndroidRuntime(748):at java.lang.reflect.Method.invokeNative(Native Method) 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(Native Method)
我的应用程序正在更新按键上的文字,有点像安卓闹钟应用程序(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;
}
导致问题的部分是在“else”语句中//移动所有位置注释是游戏崩溃的部分。 所以在应用GUI中你按数字1,它在最右边绘制而不是0(这部分工作),然后你再次按1并且它的配偶将前一个1移动到左边并在最右边添加另一个1但是这个崩溃我的应用。
我试图修复它并谷歌但我无法理解它。
答案 0 :(得分:0)
你必须为setText提供一个String,否则android将在Resource中查找id为你提供的整数的字符串。所以你必须改变
Pos1.setText(pos3);
带
Pos1.setText(String.valueOf(pos3));
答案 1 :(得分:0)
不要将整数值直接赋给setText方法,因为value应该是一个字符串。如果value是整数,则android将开始查找id为(您提供的整数)的资源字符串。
Pos1.setText( “” + POS3);
或
Pos1.setText(Integer.toString(POS3));
答案 2 :(得分:-1)
您的pos3,pos2被引用为来自R.string
的int id。你必须将它们转换为文本,然后设置文本