android.content.res.Resources $ NotFoundException: Идентификатор ресурса строки # 0x0

Я разрабатываю приложение для Android, которое считывает данные из базы данных MySQL, и я столкнулся с этой ошибкой. У меня есть этот XML-макет:

      

И это мой файл Java:

 public ApplicationAdapter(Context context, List 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 один берет String и принимает идентификатор int int. Если вы передадите ему целое число, оно попытается найти соответствующий идентификатор строкового ресурса, который он не может найти, что является вашей ошибкой.

Я думаю, app.getTotalDl() возвращает int. Вам нужно специально указать setText чтобы установить значение String этого int.

setText (int resid) vs setText (текст CharSequence)

замещать

 dateTime.setText(app.getTotalDl()); 

С

 dateTime.setText(""+app.getTotalDl()); 

Когда вы пытаетесь установить текст в Edittext или textview вы должны передать только формат String.

 dateTime.setText(app.getTotalDl()); 

в

 dateTime.setText(String.valueOf(app.getTotalDl())); 

Оцененное значение для settext было целочисленным, поэтому он перешел к подключенному к нему ресурсу, но он не был найден, вы хотели установить текст, поэтому он должен быть строкой, чтобы преобразовать целое число в строку путем присоединения .toStringe или String.valueOf(int) решить вашу проблему!

  • Код будет возвращать 0.0, 0.0 GPS-координату при бросании NullPointerException
  • Отправка электронной почты на Android с использованием API JavaMail без использования стандартного / встроенного приложения
  • Android: CountDownTimer пропускает последний onTick ()!
  • Почему люди так боятся использовать clone () (на коллекции и classы JDK)?
  • Как настроить панель выполнения на Android
  • Java не поддерживает множественное наследование, но неявно каждый class в java расширяет Object и позволяет еще один
  • Как округлить время до ближайшего квартального часа в java?
  • Преобразование списка в массив в Java
  • Есть ли какой-нибудь метод sizeof в Java?
  • Использование serviceloader на android
  • Как установить тайм-аут в библиотеке дооснащения?
  • Давайте будем гением компьютера.