adroid.content.res를 클릭합니다.Resources$NotFoundException:문자열 리소스 ID #0x0
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_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>
이게 제 Java 파일입니다.
public ApplicationAdapter(Context context, List<Application> items) {
super(context, R.layout.app_custom_list, items);
this.items = items;
}
@Override
public int getCount() {
return items.size();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = convertView;
if(v == null) {
LayoutInflater li = LayoutInflater.from(getContext());
v = li.inflate(R.layout.app_custom_list, null);
}
Application app = items.get(position);
if(app != null) {
// ImageView icon = (ImageView)v.findViewById(R.id.appIcon);
TextView wardNumber = (TextView)v.findViewById(R.id.wardNumber);
TextView name = (TextView)v.findViewById(R.id.name);
// LinearLayout ratingCntr = (LinearLayout)v.findViewById(R.id.ratingCntr);
TextView dateTime = (TextView)v.findViewById(R.id.dateTime);
// if(icon != null) {
// Resources res = getContext().getResources();
// String sIcon = "com.sj.jsondemo:drawable/" + app.getIcon();
// icon.setImageDrawable(res.getDrawable(res.getIdentifier(sIcon, null, null)));
// }
if(wardNumber != null) wardNumber.setText(app.getTitle());
if(name != null) name.setText(app.getTitle());
if(dateTime != null) {
dateTime.setText(app.getTotalDl());
// NumberFormat nf = NumberFormat.getNumberInstance();
// dateTime.setText(nf.format(app.getTotalDl())+" dl");
}
}
return v;
}
}
이 액티비티가 호출되면 다음 오류 메시지가 나타납니다.
11-24 21:12:03.633: E/AndroidRuntime(1251): FATAL EXCEPTION: main
11-24 21:12:03.633: E/AndroidRuntime(1251): android.content.res.Resources$NotFoundException: String resource ID #0x0
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.content.res.Resources.getText(Resources.java:201)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.TextView.setText(TextView.java:2863)
11-24 21:12:03.633: E/AndroidRuntime(1251): at com.sj.jsondemo.Appl icationAdapter.getView(ApplicationAdapter.java:53)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.AbsListView.obtainView(AbsListView.java:1430)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.ListView.measureHeightOfChildren(ListView.java:1216)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.ListView.onMeasure(ListView.java:1127)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.View.measure(View.java:8313)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1017)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.LinearLayout.measureHorizontal(LinearLayout.java:701)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.LinearLayout.onMeasure(LinearLayout.java:311)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.View.measure(View.java:8313)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.View.measure(View.java:8313)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.LinearLayout.measureVertical(LinearLayout.java:531)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.LinearLayout.onMeasure(LinearLayout.java:309)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.View.measure(View.java:8313)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:3138)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.widget.FrameLayout.onMeasure(FrameLayout.java:250)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.View.measure(View.java:8313)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.ViewRoot.performTraversals(ViewRoot.java:839)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.view.ViewRoot.handleMessage(ViewRoot.java:1859)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.os.Handler.dispatchMessage(Handler.java:99)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.os.Looper.loop(Looper.java:130)
11-24 21:12:03.633: E/AndroidRuntime(1251): at android.app.ActivityThread.main(ActivityThread.java:3683)
11-24 21:12:03.633: E/AndroidRuntime(1251): at java.lang.reflect.Method.invokeNative(Native Method)
11-24 21:12:03.633: E/AndroidRuntime(1251): at java.lang.reflect.Method.invoke(Method.java:507)
11-24 21:12:03.633: E/AndroidRuntime(1251): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:839)
11-24 21:12:03.633: E/AndroidRuntime(1251): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:597)
11-24 21:12:03.633: E/AndroidRuntime(1251): at dalvik.system.NativeStart.main(Native Method)
11-24 21:12:08.922: I/Process(1251): Sending signal. PID: 1251 SIG: 9
이 오류를 어떻게 수정해야 할지 모르겠어요.
바꾸다
dateTime.setText(app.getTotalDl());
로.
dateTime.setText(String.valueOf(app.getTotalDl()));
에는 다양한 버전이 있습니다.setText
- 1개는 String, 1개는 int 자원 ID를 사용합니다.정수를 전달하면 해당 문자열 리소스 ID가 검색됩니다. 이 ID는 찾을 수 없고 오류입니다.
그런 것 같다.app.getTotalDl()
int를 반환합니다.구체적으로 말씀해주셔야 합니다.setText
이 int의 String 값으로 설정합니다.
setText(int residence) vs setText(CharSequence 텍스트)
교체하다
dateTime.setText(app.getTotalDl());
와 함께
dateTime.setText(""+app.getTotalDl());
우리가 가치를 얻는다면int
그리고 우리는 그것을String
에러가 발생합니다.내 솔루션을 PFB,
Textview = tv_property_count;
int property_id;
tv_property_count.setText(String.valueOf(property_id));
int 값이 입력되면 에러를 발생시키는 문자열을 사용해야 합니다.
전에
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()));
String.valueOf를 추가하면 오류를 해결할 수 있습니다.
텍스트를 설정하려고 할 때Edittext
또는textview
String 형식만 전달해야 합니다.
dateTime.setText(app.getTotalDl());
로.
dateTime.setText(String.valueOf(app.getTotalDl()));
settext의 평가된 값은 정수이므로 연결된 리소스를 확인하러 갔지만 찾을 수 없습니다. 텍스트를 문자열로 설정하여 연결을 통해 정수를 문자열로 변환해야 합니다..toStringe
또는String.valueOf(int)
당신의 문제를 해결해 줄 것입니다!
할 수 있어요. 이건 쉬운 방법이에요.
txtTopicNo.setText(10+"");
Kotlin을 사용하는 경우
dateTime.setText(
app.getTotalDl().toString()
)
문제가 해소되지 않고 를 사용하고 있는 경우data binding
혹시 모르니까 다시 한 번 확인해 주세요.android:text
기여하다.
언급URL : https://stackoverflow.com/questions/20177003/android-content-res-resourcesnotfoundexception-string-resource-id-0x0
'programing' 카테고리의 다른 글
vue-router: 인수 변경 시 라우팅 방지 (0) | 2022.07.14 |
---|---|
메모리의 기능에는 memset, memchr 등이 있습니다.string.h에 있는데 다른 mem 함수와 함께 stdlib.h에 없나요? (0) | 2022.07.14 |
logger(log4j)에 대한 추가 프로그램을 찾을 수 없습니다. (0) | 2022.07.14 |
정렬된 어레이의 처리가 정렬되지 않은 어레이의 처리보다 빠른 이유는 무엇입니까? (0) | 2022.07.14 |
Vue JS에서 열린 그래프 메타 태그가 이미지를 표시하지 않음 (0) | 2022.07.14 |