Java android.content.res.Resources$NotFoundException:字符串资源ID#0x0
我正在开发一个Android应用程序,从MySQL数据库读取数据,我遇到了这个错误。我有这样的XML布局:Java android.content.res.Resources$NotFoundException:字符串资源ID#0x0,java,android,xml,listview,Java,Android,Xml,Listview,我正在开发一个Android应用程序,从MySQL数据库读取数据,我遇到了这个错误。我有这样的XML布局: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_paren
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<TextView android:id="@+id/wardNumber"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="3dp"
android:text="Ward Number"
android:textSize="22dp"/>
<TextView android:id="@+id/dateTime"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/wardNumber"
android:layout_alignParentRight="true"
android:layout_marginRight="3dp"
android:text="Date-Time" />
<TextView
android:id="@+id/name"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBaseline="@+id/dateTime"
android:layout_alignBottom="@+id/dateTime"
android:layout_alignLeft="@+id/wardNumber"
android:layout_marginLeft="3dp"
android:text="Name" />
</RelativeLayout>
我不知道如何修复此错误。更改
dateTime.setText(app.getTotalDl());
到
有不同版本的setText
——一个接受字符串,另一个接受整数资源id。如果传递一个整数,它将尝试查找相应的字符串资源id,但找不到,这是您的错误
我猜app.gettotall()
返回一个int。您需要特别告诉setText
将其设置为该int的字符串值
vs更换
dateTime.setText(app.getTotalDl());
与
当您尝试在
Edittext
或textview
中设置文本时,您
应该只传递字符串格式
dateTime.setText(app.getTotalDl());
到
settext的计算值是整数,因此它去查看附加到它的资源,但找不到它。您希望设置文本,使其应为字符串,因此通过附加
将整数转换为字符串。ToString
或字符串。valueOf(int)
将解决您的问题 你能行。这是一个简单的方法
txtTopicNo.setText(10+"");
如果我们将值设置为
int
,并将其设置为String
,则会发生错误。PFB我的解决方案
Textview = tv_property_count;
int property_id;
tv_property_count.setText(String.valueOf(property_id));
如果您得到int中的值,那么必须使用string,因为它会抛出错误 以前
holder.villageName.setText(villageModelList.get(position).getVillageName());
holder.villageCount.setText(villageModelList.get(position).getPeopleCount());
holder.peopleCount.setText(villageModelList.get(position).getPeopleCount());
之后
您可以通过添加字符串来解决此错误。valueOfsetText(intresid)甚至没有附加javadoc。他们真的应该给它起一个单独的名字——显然这是一种常见的误用。所以,指定resId会将TextView的文本设置为另一个资源的文本?我已经知道这一点,但我总是忘记这一点,并且总是以这个答案结束。这是可行的,但我认为这不是合适的方法@肯沃尔夫的回答是正确和专业的。
dateTime.setText(app.getTotalDl());
dateTime.setText(String.valueOf(app.getTotalDl()));
txtTopicNo.setText(10+"");
Textview = tv_property_count;
int property_id;
tv_property_count.setText(String.valueOf(property_id));
holder.villageName.setText(villageModelList.get(position).getVillageName());
holder.villageCount.setText(villageModelList.get(position).getPeopleCount());
holder.peopleCount.setText(villageModelList.get(position).getPeopleCount());
holder.villageName.setText(villageModelList.get(position).getVillageName());
holder.villageCount.setText(String.valueOf(villageModelList.get(position).getPeopleCount()));
holder.peopleCount.setText(String.valueOf(villageModelList.get(position).getPeopleCount()));