Форум программистов, компьютерный форум CyberForum.ru

Программирование Android

Войти
Регистрация
Восстановить пароль
 
Angry_cat111
0 / 0 / 0
Регистрация: 15.10.2016
Сообщений: 7
#1

Приложение с ListView падает с NullPointerException - Android

15.10.2016, 22:44. Просмотров 215. Ответов 12
Метки нет (Все метки)

Нужно было создать список с помощью ListView (На одной странице вводится домашняя работа, на другой выводится). Создал 2 подобные странички, одна отлично работает, а другая, выполняется полностью (посмотрел по логам, которые снизу скопировал), но потом вылетает, выдавая ошибку NullPointerException. Не могу понять, почему вылетает. Возможно, проблемы с массивом, но выводится-то он правильно.








XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<?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">
 <TextView
 android:layout_width="fill_parent"
 android:layout_height="wrap_content"
 android:gravity="center"
 android:text="Cписок всех дз"
 android:textSize="20dp"
 >
 </TextView>
 <ListView
 android:id="@+id/lvMain"
 android:layout_width="match_parent"
 android:layout_height="wrap_content">
 </ListView>
</LinearLayout>



Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
public class yourhomework extends AppCompatActivity {
 public void onCreate(Bundle savedInstanceState) {
 super.onCreate(savedInstanceState);
 setContentView(R.layout.listview);
 SharedPreferences settingsActivity = getSharedPreferences("user", MODE_PRIVATE);
 String name = settingsActivity.getString("abc","");
 
 if (name.equals("10")) {
 
 
 SharedPreferences settingsActivity1 = getSharedPreferences("user", MODE_PRIVATE);
 String name1 = settingsActivity.getString("num", "");
 
 if (!name1.isEmpty()) {
 int a = Integer.parseInt(name1);
 String[] b = new String[a+1];
 String[] c = new String[a+1];
 String[] d = new String[a+1];
 String[] e = new String[a+1];
 
 Log.d("New", "число " + a);
 for (int x = 1; x < (a+1); x = x + 1) {
 
 SharedPreferences sPref = getSharedPreferences("dz"+x, MODE_PRIVATE);
 SharedPreferences.Editor editor2 = sPref.edit();
 b[x] = sPref.getString("desc", "");
 c[x] = sPref.getString("time", "");
 d[x] = sPref.getString("link", "");
 e[x] = sPref.getString("sourse", "");
 Log.d("New", "Описание "+b[x]);
 editor2.apply();
 }
 for (int x = 1; x < (a+1); x = x + 1) {
 Log.d("New", "Массив " + b[x]);
 }
 
 
 ListView doit = (ListView) findViewById(R.id.lvMain);
 Log.d("New", "-2");
 
 Log.d("New", "-3");
 
 // создаем адаптер
 ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,
 android.R.layout.simple_list_item_1, b);
 Log.d("New", "-4");
 // присваиваем адаптер списку
 doit.setAdapter(adapter1);
 Log.d("New", "-5");
 }
 }
 
 }
}


10-15 22:20:44.471 21870-21870/net.styleru.myapplication D/New: число 4
10-15 22:20:44.484 21870-21870/net.styleru.myapplication D/New: Описание q
10-15 22:20:44.489 21870-21870/net.styleru.myapplication D/New: Описание fr
10-15 22:20:44.515 21870-21870/net.styleru.myapplication D/New: Описание dhdh
10-15 22:20:44.524 21870-21870/net.styleru.myapplication D/New: Описание dhdh
10-15 22:20:44.524 21870-21870/net.styleru.myapplication D/New: Массив q
10-15 22:20:44.524 21870-21870/net.styleru.myapplication D/New: Массив fr
10-15 22:20:44.524 21870-21870/net.styleru.myapplication D/New: Массив dhdh
10-15 22:20:44.524 21870-21870/net.styleru.myapplication D/New: Массив dhdh
10-15 22:20:44.524 21870-21870/net.styleru.myapplication D/New: -2
10-15 22:20:44.524 21870-21870/net.styleru.myapplication D/New: -3
10-15 22:20:44.529 21870-21870/net.styleru.myapplication D/New: -4
10-15 22:20:44.529 21870-21870/net.styleru.myapplication D/New: -5
Лучшие ответы (1)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
vxg
Модератор
 Аватар для vxg
2860 / 1793 / 183
Регистрация: 13.01.2012
Сообщений: 6,776
16.10.2016, 11:08     Приложение с ListView падает с NullPointerException #2
Angry_cat111, покажите лог с которым идет вылет
Angry_cat111
0 / 0 / 0
Регистрация: 15.10.2016
Сообщений: 7
16.10.2016, 14:58  [ТС]     Приложение с ListView падает с NullPointerException #3
Проблема в том, что логи показывают, что программа выполняется полностью, то есть все логи работают. НО вылетает такая ошибка
Кликните здесь для просмотра всего текста
E/AndroidRuntime: FATAL EXCEPTION: main
Process: net.styleru.myapplication, PID: 23497
java.lang.NullPointerException
at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394)
at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
at android.widget.AbsListView.obtainView(AbsListView.java:2338)
at android.widget.ListView.measureHeightOfChildren(ListView.java:1273)
at android.widget.ListView.onMeasure(ListView.java:1182)
at android.view.View.measure(View.java:16834)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5374)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1621)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:742)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:607)
at android.view.View.measure(View.java:16834)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5374)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:340)
at android.support.v7.widget.ContentFrameLayout.onMeasure(ContentFrameLayout.java:135)
at android.view.View.measure(View.java:16834)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5374)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1621)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:742)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:607)
at android.view.View.measure(View.java:16834)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5374)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:340)
at android.view.View.measure(View.java:16834)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5374)
at android.widget.LinearLayout.measureChildBeforeLayout(LinearLayout.java:1621)
at android.widget.LinearLayout.measureVertical(LinearLayout.java:742)
at android.widget.LinearLayout.onMeasure(LinearLayout.java:607)
at android.view.View.measure(View.java:16834)
at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5374)
at android.widget.FrameLayout.onMeasure(FrameLayout.java:340)
at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2332)
at android.view.View.measure(View.java:16834)
at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:2246)
at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1312)
at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1509)
at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1189)
at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:6223)
at android.view.Choreographer$CallbackRecord.run(Choreographer.java:788)
at android.view.Choreographer.doCallbacks(Choreographer.java:591)
at android.view.Choreographer.doFrame(Choreographer.java:560)
at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:774)
at android.os.Handler.handleCallback(Handler.java:808)
at android.os.Handler.dispatchMessage(Handler.java:103)
at android.os.Looper.loop(Looper.java:193)
at android.app.ActivityThread.main(ActivityThread.java:5292)
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:824)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:640)
at dalvik.system.NativeStart.main(Native Method)
Паблито
резкий
1964 / 1699 / 526
Регистрация: 12.05.2014
Сообщений: 6,054
Завершенные тесты: 1
16.10.2016, 15:06     Приложение с ListView падает с NullPointerException #4
simple_list_item_1

а что в этой разметке?
если я правильно помню, там полюбому должно быть TextView с id == android.R.id.text1
либо после id разметки надо передавать id своей текствьюшки куда адаптер будет писать текст
Angry_cat111
0 / 0 / 0
Регистрация: 15.10.2016
Сообщений: 7
16.10.2016, 15:13  [ТС]     Приложение с ListView падает с NullPointerException #5
Адаптер пишет свои данные в
ListView doit = (ListView) findViewById(R.id.lvMain);


android.R.layout.simple_list_item_1 – это системный layout-файл, который представляет собой TextView.
То есть он выступает в качестве как бы css фаила, его id нигде не используется. Id textview нигде не используется (У меня одна страница работает с таким же почти кодом, а эта нет, разница только в айдишниках и способах заполнения массива, но я логи проставил, вроде массив правильно выводится)
vxg
Модератор
 Аватар для vxg
2860 / 1793 / 183
Регистрация: 13.01.2012
Сообщений: 6,776
16.10.2016, 15:17     Приложение с ListView падает с NullPointerException #6
Angry_cat111, почему массив не от нуля идёт?
Angry_cat111
0 / 0 / 0
Регистрация: 15.10.2016
Сообщений: 7
16.10.2016, 15:20  [ТС]     Приложение с ListView падает с NullPointerException #7
Я так случайно сделал, могу легко исправить, но это же не влияет на работу самой программы
Паблито
резкий
1964 / 1699 / 526
Регистрация: 12.05.2014
Сообщений: 6,054
Завершенные тесты: 1
16.10.2016, 15:24     Приложение с ListView падает с NullPointerException #8
нулевой элемент массива b == null скорее всего из за этого и вылетает
Angry_cat111
0 / 0 / 0
Регистрация: 15.10.2016
Сообщений: 7
16.10.2016, 15:28  [ТС]     Приложение с ListView падает с NullPointerException #9
Поменял, все равно ничего не изменилось, все вылетает. Вот логи

10-16 15:28:33.638 14774-14774/net.styleru.myapplication D/New: Домашка номер 0
10-16 15:28:33.640 14774-14774/net.styleru.myapplication D/New: Внесена домашка rr 5 x xd
10-16 15:28:40.440 14774-14774/net.styleru.myapplication D/New: Домашка номер 1
10-16 15:28:40.443 14774-14774/net.styleru.myapplication D/New: Внесена домашка sj 56 sh zb
10-16 15:28:42.913 14774-14774/net.styleru.myapplication D/New: число 2
10-16 15:28:42.913 14774-14774/net.styleru.myapplication D/New: Описание rr
10-16 15:28:42.913 14774-14774/net.styleru.myapplication D/New: Описание sj
10-16 15:28:42.913 14774-14774/net.styleru.myapplication D/New: Массив rr
10-16 15:28:42.913 14774-14774/net.styleru.myapplication D/New: Массив sj
10-16 15:28:42.914 14774-14774/net.styleru.myapplication D/New: -2
10-16 15:28:42.914 14774-14774/net.styleru.myapplication D/New: -3
10-16 15:28:42.916 14774-14774/net.styleru.myapplication D/New: -4
10-16 15:28:42.916 14774-14774/net.styleru.myapplication D/New: -5
Паблито
резкий
1964 / 1699 / 526
Регистрация: 12.05.2014
Сообщений: 6,054
Завершенные тесты: 1
16.10.2016, 15:30     Приложение с ListView падает с NullPointerException #10
и где исправленный код?
и если можно, отформатированный нормально, это делается через Ctrl+Alt+L
Angry_cat111
0 / 0 / 0
Регистрация: 15.10.2016
Сообщений: 7
16.10.2016, 15:32  [ТС]     Приложение с ListView падает с NullPointerException #11
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package net.styleru.myapplication.activity;
 
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.ArrayAdapter;
import android.widget.ListView;
 
import net.styleru.myapplication.R;
 
/**
 * Created by Пользователь on 15.10.2016.
 */
 
public class yourhomework extends AppCompatActivity {
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.listview);
        SharedPreferences settingsActivity = getSharedPreferences("user", MODE_PRIVATE);
        String name = settingsActivity.getString("abc", "");
 
        if (name.equals("10")) {
 
 
            SharedPreferences settingsActivity1 = getSharedPreferences("user", MODE_PRIVATE);
            String name1 = settingsActivity.getString("num", "");
 
            if (!name1.isEmpty()) {
                int a = Integer.parseInt(name1);
                String[] b = new String[a + 1];
                String[] c = new String[a + 1];
                String[] d = new String[a + 1];
                String[] e = new String[a + 1];
 
                Log.d("New", "число " + a);
                for (int x = 0; x < (a); x = x + 1) {
 
                    SharedPreferences sPref = getSharedPreferences("dz" + x, MODE_PRIVATE);
                    SharedPreferences.Editor editor2 = sPref.edit();
                    b[x] = sPref.getString("desc", "");
                    c[x] = sPref.getString("time", "");
                    d[x] = sPref.getString("link", "");
                    e[x] = sPref.getString("sourse", "");
                    Log.d("New", "Описание " + b[x]);
                    editor2.apply();
                }
                for (int x = 0; x < (a); x = x + 1) {
                    Log.d("New", "Массив " + b[x]);
                }
 
 
                ListView doit = (ListView) findViewById(R.id.lvMain);
                Log.d("New", "-2");
 
                Log.d("New", "-3");
 
                // создаем адаптер
                ArrayAdapter<String> adapter1 = new ArrayAdapter<String>(this,
                        android.R.layout.simple_list_item_1, b);
 
                Log.d("New", "-4");
                // присваиваем адаптер списку
                doit.setAdapter(adapter1);
                Log.d("New", "-5");
            }
        }
 
    }
}
Паблито
резкий
1964 / 1699 / 526
Регистрация: 12.05.2014
Сообщений: 6,054
Завершенные тесты: 1
16.10.2016, 15:38     Приложение с ListView падает с NullPointerException #12
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от Angry_cat111 Посмотреть сообщение
String[] b = new String[a + 1]; String[] c = new String[a + 1]; String[] d = new String[a + 1]; String[] e = new String[a + 1];
если теперь нумерация с нуля, то наверное стоило поубирать +1 в этих массивах
и
Цитата Сообщение от Angry_cat111 Посмотреть сообщение
Вот логи
это не логи, нужны всегда логи ошибок из консоли
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
16.10.2016, 15:42     Приложение с ListView падает с NullPointerException
Еще ссылки по теме:

NullPointerException при поиске ListView Android
Android Падает приложение сразу после on Create
NullPointerException Android
Приложение падает когда шапка Navigation Drawer Activity пропадает из виду Android
Android Приложение падает после вызова finish

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Angry_cat111
0 / 0 / 0
Регистрация: 15.10.2016
Сообщений: 7
16.10.2016, 15:42  [ТС]     Приложение с ListView падает с NullPointerException #13
О, реально, я убрал из массивов по единице, и все заработало. А уж как остальные элементы вывести- это я разберусь. Спасибо большое !
Yandex
Объявления
16.10.2016, 15:42     Приложение с ListView падает с NullPointerException
Ответ Создать тему
Опции темы

Текущее время: 19:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru