TextView setText

时间:2015-07-22 03:05:08

标签: android textview

此崩溃是随机发生的。在大多数情况下,它工作正常,可以正确找到String资源。我用Google搜索了,似乎我的情况与其他人不同

代码如下

     if (mType == Constants.TYPE_POWER) {
        mStatus.setText(R.string.power_on);
    } else if (mType == Constants.TYPE_USB) {
        mStatus.setText(R.string.usb_on);
    }

崩溃如下所示

android.content.res.Resources$NotFoundException: String resource ID #0x7f080066
at android.content.res.Resources.getText(Resources.java:252)
at android.widget.TextView.setText(TextView.java:3895)
at com.xmeco.plugseat.widget.PlugSeatCenterView.updateOnStatus(PlugSeatCenterView.java:160)
at com.xmeco.plugseat.widget.PlugSeatCenterView.update(PlugSeatCenterView.java:112)
at com.xmeco.plugseat.widget.PlugSeatCenterView.access$000(PlugSeatCenterView.java:34)
at com.xmeco.plugseat.widget.PlugSeatCenterView$MyHandler.handleMessage(PlugSeatCenterView.java:369)
at android.os.Handler.dispatchMessage(Handler.java:102)
at android.os.Looper.loop(Looper.java:136)
at android.app.ActivityThread.main(ActivityThread.java:5049)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:515)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:793)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:609)
at dalvik.system.NativeStart.main(Native Method)

第160行

mStatus.setText(R.string.power_on);

我不知道为什么会这样。有没有人见过这个?感谢

-------------- UPDATE -------

我的string.xml(它是中文./res/values/strings.xml。我的项目中只有一个strings.xml)

<string name="power_on">插座电源已开启</string>
<string name="power_off">插座电源已关闭</string>
<string name="usb_on">USB插座已开启</string>
<string name="usb_off">USB插座已开启</string>

R.java

    public static final int power_off=0x7f080067;
    public static final int power_on=0x7f080066;
    public static final int pull_down_refresh=0x7f080001;
    public static final int refreshing=0x7f080003;

3 个答案:

答案 0 :(得分:0)

<强> Resources$NotFoundException: String resource ID #0x7f080066

您必须检查R.java文件以查看具有字符串资源ID #0x7f080066的资源,这将解释原因。如果文件中不存在字符串,则检查是否在strings文件中创建了字符串。如果strings文件中存在字符串,则清理并重建项目或以其他方式创建字符串。

这应该有所帮助,如果您发现任何困难,请告诉我。

干杯!

答案 1 :(得分:0)

我正在回答这个问题,因为其他答案都是误导。

你在做什么是正确的!您 CAN 直接从strings.xml分配字符串的资源标识符!

http://developer.android.com/reference/android/widget/TextView.html#setText(int)

您需要确保strings.xml

<string name="power_on">Power On</string>
<string name="usb_on">USB On</string>

重建项目后,它应该可以正常工作。希望这有帮助!

答案 2 :(得分:0)

我认为这里的问题可能是因为你只有中文文件夹(values / zh)中的资源R.string.power_on,并且缺少默认文件夹中的power_on资源&#34; values / strings.xml&#34;。

请检查文件夹&#34; values / strings.xml&#34;。

当您支持多种语言并在设备中使用不同语言进行测试时,通常会发生此缺失资源错误。