错误获取资源编号的值时没有包标识符

Dea*_*n-O 19 android android-layout android-resources

两个活动都在同一个包中

第二个活动使用第二个布局文件

setContentView(R.layout.main2);
Run Code Online (Sandbox Code Playgroud)

Second_Activity中此行的错误.

EditText text1 = (EditText) findViewById(R.id.EditText03);
Run Code Online (Sandbox Code Playgroud)

这是Second_Activity的布局文件.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:orientation="vertical" >

    <LinearLayout
        android:id="@+id/LinearLayout01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" >

        <TextView
            android:id="@+id/TextView01"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Answer Is : " >
        </TextView>

        <EditText
            android:id="@+id/EditText03"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" >
        </EditText>
    </LinearLayout>

    <Button
        android:id="@+id/Button01"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:onClick="onClick"
        android:text="Calling an intent" >
    </Button>

</LinearLayout>
Run Code Online (Sandbox Code Playgroud)

以下是LogCat窗口中的错误

08-01 19:32:20.340: WARN/ResourceType(8875): No package identifier when getting value for resource number 0x00000005
08-01 19:32:20.390: ERROR/AndroidRuntime(8875): Caused by: android.content.res.Resources$NotFoundException: String resource ID #0x5 
Run Code Online (Sandbox Code Playgroud)

mail.xml

<TextView 
    android:id="@+id/TextView01" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" android:text="First Number : ">
</TextView>

<EditText 
    android:id="@+id/EditText01" 
    android:inputType="number"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content">
</EditText>
Run Code Online (Sandbox Code Playgroud)

<TextView 
    android:id="@+id/TextView02" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" android:text="Second Number: ">
</TextView>

<EditText 
    android:id="@+id/EditText02" 
    android:inputType="number"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content">
</EditText>
Run Code Online (Sandbox Code Playgroud)

secondscreen.xml

<TextView 
    android:id="@+id/TextView03" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" android:text="Answer Is : ">
</TextView>

<EditText 
    android:id="@+id/main2EditText01" 
    android:inputType="number"
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content">
</EditText>
Run Code Online (Sandbox Code Playgroud)

清单xml文件

    <activity android:name=".ActivityTwo"/>
Run Code Online (Sandbox Code Playgroud)

Joh*_*ner 107

当我尝试使用TextView.setText传递char而不是String时,我收到了同样的错误消息.这是有道理的,因为char将被提升为一个int,这意味着我真的在调用它

TextView.setText( int resId );
Run Code Online (Sandbox Code Playgroud)

由于没有具有该值的资源,因此无效.

  • 谢谢你.我试图用setText()发送一个Integer.使用Integer.toString为我做了诀窍. (7认同)

楊惟鈞*_*楊惟鈞 41

面对同样的错误

最后我发现它不是由于你的xml布局错误

代码集中的某个地方 TextView.setText(int)

尝试 TextView.setText( Integer.toString(int));


小智 9

当您将一个整数传递TextView.setText()给要显示的android时,假定它是一个资源ID,这就是您获得的原因Resource$NotFoundException.尝试将int转换为String,然后再将其传递给TextView.setText():TextView.setText(String.valueOf(i)).


小智 7

仅为协议,您还可以使用:

TextView.setText("" + intVar) 代替 TextView.setText(intVar)


小智 6

尝试打印整数值时出现相同的错误:TextView.setText(int value)。我通过将整数值转换为字符串来解决此错误,我使用了TextView.setText(已转换的字符串值)


nek*_*ala 5

在我来这篇文章之前,我遇到了同样的问题。对我来说,它是这样的:view_element.setText( an_int_value). 铸造后view_element.setText(String.valueOf(an_int_value));,一切正常。