致命异常:主要在textView上

时间:2013-10-18 17:29:47

标签: android eclipse textview

我遇到了崩溃我的应用并将其写在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但是这个崩溃我的应用。

我试图修复它并谷歌但我无法理解它。

3 个答案:

答案 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。你必须将它们转换为文本,然后设置文本