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

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

Восстановить пароль Регистрация
 
Angry_cat111
0 / 0 / 0
Регистрация: 15.10.2016
Сообщений: 7
15.10.2016, 22:44     Приложение с ListView падает с NullPointerException #1
Нужно было создать список с помощью 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
2658 / 1669 / 156
Регистрация: 13.01.2012
Сообщений: 6,214
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)
Паблито
не спать!
1786 / 1520 / 472
Регистрация: 12.05.2014
Сообщений: 5,548
Завершенные тесты: 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
2658 / 1669 / 156
Регистрация: 13.01.2012
Сообщений: 6,214
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
Я так случайно сделал, могу легко исправить, но это же не влияет на работу самой программы
Паблито
не спать!
1786 / 1520 / 472
Регистрация: 12.05.2014
Сообщений: 5,548
Завершенные тесты: 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
Паблито
не спать!
1786 / 1520 / 472
Регистрация: 12.05.2014
Сообщений: 5,548
Завершенные тесты: 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");
            }
        }
 
    }
}
Паблито
не спать!
1786 / 1520 / 472
Регистрация: 12.05.2014
Сообщений: 5,548
Завершенные тесты: 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

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

Или воспользуйтесь поиском по форуму:
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
Ответ Создать тему
Опции темы

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