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

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

Войти
Регистрация
Восстановить пароль
 
Lers
12 / 12 / 3
Регистрация: 27.05.2012
Сообщений: 203
#1

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

12.08.2014, 17:10. Просмотров 858. Ответов 10
Метки нет (Все метки)

Помогите разобраться в логе. Не могу понять где вылазит NullPointerException.
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
08-12 08:40:49.847: E/AndroidRuntime(858): FATAL EXCEPTION: main
08-12 08:40:49.847: E/AndroidRuntime(858): Process: info.androidhive.tabsswipe, PID: 858
08-12 08:40:49.847: E/AndroidRuntime(858): java.lang.NullPointerException
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.widget.ArrayAdapter.getView(ArrayAdapter.java:362)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.widget.AbsListView.obtainView(AbsListView.java:2240)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.widget.ListView.measureHeightOfChildren(ListView.java:1263)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.widget.ListView.onMeasure(ListView.java:1175)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.view.View.measure(View.java:16497)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.widget.RelativeLayout.measureChild(RelativeLayout.java:689)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.widget.RelativeLayout.onMeasure(RelativeLayout.java:473)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.view.View.measure(View.java:16497)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.view.View.measure(View.java:16497)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1451)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.view.View.measure(View.java:16497)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.view.View.measure(View.java:16497)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
08-12 08:40:49.847: E/AndroidRuntime(858):  at com.android.internal.widget.ActionBarOverlayLayout.onMeasure(ActionBarOverlayLayout.java:327)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.view.View.measure(View.java:16497)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.view.ViewGroup.measureChildWithMargins(ViewGroup.java:5125)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.widget.FrameLayout.onMeasure(FrameLayout.java:310)
08-12 08:40:49.847: E/AndroidRuntime(858):  at com.android.internal.policy.impl.PhoneWindow$DecorView.onMeasure(PhoneWindow.java:2291)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.view.View.measure(View.java:16497)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.view.ViewRootImpl.performMeasure(ViewRootImpl.java:1916)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.view.ViewRootImpl.measureHierarchy(ViewRootImpl.java:1113)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.view.ViewRootImpl.performTraversals(ViewRootImpl.java:1295)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.view.ViewRootImpl.doTraversal(ViewRootImpl.java:1000)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.view.ViewRootImpl$TraversalRunnable.run(ViewRootImpl.java:5670)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.view.Choreographer$CallbackRecord.run(Choreographer.java:761)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.view.Choreographer.doCallbacks(Choreographer.java:574)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.view.Choreographer.doFrame(Choreographer.java:544)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.view.Choreographer$FrameDisplayEventReceiver.run(Choreographer.java:747)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.os.Handler.handleCallback(Handler.java:733)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.os.Handler.dispatchMessage(Handler.java:95)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.os.Looper.loop(Looper.java:136)
08-12 08:40:49.847: E/AndroidRuntime(858):  at android.app.ActivityThread.main(ActivityThread.java:5017)
08-12 08:40:49.847: E/AndroidRuntime(858):  at java.lang.reflect.Method.invokeNative(Native Method)
08-12 08:40:49.847: E/AndroidRuntime(858):  at java.lang.reflect.Method.invoke(Method.java:515)
08-12 08:40:49.847: E/AndroidRuntime(858):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:779)
08-12 08:40:49.847: E/AndroidRuntime(858):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:595)
08-12 08:40:49.847: E/AndroidRuntime(858):  at dalvik.system.NativeStart.main(Native Method)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2014, 17:10     NullPointerException
Посмотрите здесь:

NullPointerException - Программирование Android
Не пойму почему налл?? @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, ...

NullPointerException - Программирование Android
Button button = (Button)findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override ...

NullPointerException - Программирование Android
Здравствуйте! На строке AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R.id.autoCompleteTextView1); выдает...

NullPointerException - Программирование Android
В методе присутствует вот такая конструкция new Thread(new Runnable() { @Override public void run() { ...

NullPointerException - Программирование Android
Доброго времени суток. Совсем недавно решил занятся разработкой под андроид, но вот на первых шагах столкнулся с проблемой. По аналогии...

Proguard и NullPointerException - Программирование Android
Задействуйте! Надеюсь кто-то поможет. Проблема такая. В release версии ( с использованием proguard) приложения возникает ошибка ...

NullPointerException в адаптере RecyclerView - Программирование Android
Здравствуйте уважаемые форумчане! Столкнулся с такой проблемой, в RecyclerView создаю адаптер для добавления карточек, в карточке, в...

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
12.08.2014, 18:17     NullPointerException #2
Цитата Сообщение от Lers Посмотреть сообщение
android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394)
вот тут он вылезает, а что там уже смотрите. Скорей всего передали файл ресурсов, в котором не прописали id вьюхи, по которому ищется.
Lers
12 / 12 / 3
Регистрация: 27.05.2012
Сообщений: 203
12.08.2014, 18:34  [ТС]     NullPointerException #3
Java
1
2
Resources res = getResources();
 String [] mas = res.getStringArray(R.array.str);
Вот так я беру итемы из str
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
12.08.2014, 18:35     NullPointerException #4
где создается сам адаптер?
Lers
12 / 12 / 3
Регистрация: 27.05.2012
Сообщений: 203
12.08.2014, 18:37  [ТС]     NullPointerException #5
для чего адаптер?
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
12.08.2014, 18:41     NullPointerException #6
ArrayAdapter, тот самый который падает
Lers
12 / 12 / 3
Регистрация: 27.05.2012
Сообщений: 203
12.08.2014, 18:44  [ТС]     NullPointerException #7
в том классе где я использую файл ресурсов нету адаптера.

Добавлено через 10 секунд
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
71
72
73
74
75
76
77
78
79
80
81
82
83
package info.androidhive.tabsswipe;
 
import java.util.Random;
 
import android.content.ContentValues;
import android.content.res.Resources;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.TextView;
 
 
 
 
public class PickChalenge extends Fragment {
    TextView txt;
    Button btnmore;
    DataBase sqh;
    SQLiteDatabase sqdb;
    String [] mas;
    
    
    
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        
         View rootView = inflater.inflate(R.layout.fragment_main, container,    false);
    
      txt = (TextView) rootView.findViewById(R.id.txt1);
      sqh = new DataBase(getActivity().getApplicationContext());
      sqdb = sqh.getWritableDatabase();
      btnmore = (Button) rootView.findViewById(R.id.btn3);
      
      Resources res = getResources();
     mas = res.getStringArray(R.array.str);
        btnmore.setOnClickListener(new OnClickListener() {
          public void onClick(View rootView) {
            
         switch(rootView.getId()) {  
         
         case R.id.btn3:
              
           Random rand = new Random();
                                 
             txt.setText(mas[rand.nextInt(6)]);
             
            ContentValues cv = new ContentValues();
            cv.put(DataBase.PROGRESS, txt.getText().toString());
            sqdb.insert(DataBase.TABLE_NAME1, DataBase.PROGRESS, cv);
            
            MainActivity.viewPager.setCurrentItem(0,false); 
     
                          break;
              
        default:
             break;
         }
          }
        });
        
    
        
        
        return rootView;
    }
 
@Override
public void onStop() {
    super.onStop();
}
 
@Override
public void onPause() {
    super.onPause();
}
}
NiRamz
211 / 211 / 16
Регистрация: 26.12.2010
Сообщений: 691
12.08.2014, 18:50     NullPointerException #8
а с чего вы решили что падает в этом классе? ресурсы - это не только массив строк, это все что лежит в папке res. где создается адаптер?
Lers
12 / 12 / 3
Регистрация: 27.05.2012
Сообщений: 203
12.08.2014, 19:17  [ТС]     NullPointerException #9
в каждом из трех отдельных классов

Добавлено через 24 минуты
Вот пример одного класса где есть адаптер

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
package info.androidhive.tabsswipe;
 
import java.util.ArrayList;
 
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
 
public class TopRatedFragment extends Fragment {
    
    DataBase sqh;
    SQLiteDatabase sqdb;
    ListView lw2;
    ArrayAdapter <String> adapter;
    ArrayList <String> label = new ArrayList <String>();
    Cursor cursor;
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
 
        View rootView = inflater.inflate(R.layout.fragment_top_rated, container, false);
        
        lw2 = (ListView) rootView.findViewById(R.id.lw2);
        sqh = new DataBase(getActivity().getApplicationContext());
          sqdb = sqh.getWritableDatabase();
       
        return rootView;
    }
    
 
    @Override
    public void onResume(){
        super.onResume();
        sqh = new DataBase(getActivity().getApplicationContext());
        sqdb = sqh.getWritableDatabase();
         cursor = sqdb.query(DataBase.TABLE_NAME3, new String[] {
                DataBase._ID, DataBase.WIN }, null,null,null,null,null);
     
        while (cursor.moveToNext()) {
            String name = cursor.getString(cursor.getColumnIndex(DataBase.WIN));
            label.add(name);
        
        } 
        
        adapter = new ArrayAdapter <String> (getActivity().getApplicationContext(),android.R.layout.simple_list_item_1,label);
        lw2.setAdapter(adapter);
        cursor.close();
    }
    @Override
    public void onStop() {
        super.onStop();
 
        sqdb.close();
        sqh.close();
    }
    
    public void onPause() {
        super.onPause();
        label.clear();
    }
}
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
13.08.2014, 09:32     NullPointerException #10
Lers, в debug же можно проверить какая строка падает.
Предположу, что label пуст.
Java
1
2
3
4
5
        while (cursor.moveToNext()) {
            String name = cursor.getString(cursor.getColumnIndex(DataBase.WIN));
            label.add(name);
        
        }
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2014, 23:02     NullPointerException
Еще ссылки по теме:

Recycle/CardView NullPointerException - Программирование Android
(card_view_address)- &lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt; &lt;LinearLayout xmlns:android=&quot;http://schemas.android.com/apk/res/android&quot; ...

NullPointerException в дополнительной активности - Программирование Android
Доброй ночи. Постараюсь сразу изложить проблему. Есть код, который через php-прослойку, по ссылке, получает данные из mysql БД, через...

Unboxing of may produce NullPointerException - Программирование Android
Здравствуйте, сегодня столкнулся с незнанием, как поступить в данной ситуации. Сегодня не трогал ту часть кода, которая отвечает за данные,...

Ошибка java.lang.NullPointerException - Программирование Android
Возникает ошибка при объявлении строкового массива, я проверил, в файле string все данные есть Лог ошибки: 07-31 15:25:38.258...

NullpointerException при записи файла - Программирование Android
NullpointerException в чем проблема может быть? BufferedWriter fs = new BufferedWriter(new...


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

Или воспользуйтесь поиском по форуму:
Lers
12 / 12 / 3
Регистрация: 27.05.2012
Сообщений: 203
13.08.2014, 23:02  [ТС]     NullPointerException #11
Проблема наверно в добавлении записи в таблицы. Т.к. в одну таблицу добавляет записи нормально и отображает, а два других фрагмента с другими таблицами вылетают с NullPointerException при том что, если бд пустая, то все ок запускается и отображается. Добавляю записи одинаково, только одна таблица нормально работает, а две другие которые через контекстное меню, крашатся. Помогите разобраться.

Здесь выбираю в какую таблицу добавить запись.
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
package info.androidhive.tabsswipe;
 
import java.util.ArrayList;
 
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
 
public class MoviesFragment extends Fragment {
    
ListView lw1;
ArrayAdapter <String> adapter;
ArrayList <String> label = new ArrayList <String>();
DataBase sqh;
SQLiteDatabase sqdb;
Cursor cursor;
ContentValues cv;
String s1;
public static final int IDM_A = 101;
public static final int IDM_B = 102;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        
        View rootView = inflater.inflate(R.layout.fragment_movies, container, false);
        lw1 = (ListView) rootView.findViewById(R.id.listrdy);
                
        sqh = new DataBase(getActivity().getApplicationContext());
        sqdb = sqh.getWritableDatabase();
        
        cv = new ContentValues();
         
      
        
         
            
            lw1.setOnItemClickListener(new OnItemClickListener() {
                  public void onItemClick(AdapterView<?> parent, View view,
                      int position, long id) {
                      
                       s1 = lw1.getItemAtPosition(position).toString();    
            
                  }
                });
            
            
            
            
        registerForContextMenu(lw1);
        label.clear();
        return rootView;
    }
    
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.add(Menu.NONE, IDM_A, Menu.NONE, "WIN");
        menu.add(Menu.NONE, IDM_B, Menu.NONE, "LOSE");
    }
    
 
    public boolean onContextItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case IDM_A:
            Toast.makeText(getActivity(), "Добавлено в раздел Выполнено", Toast.LENGTH_LONG)
                    .show();
            
            cv.put(DataBase.WIN, s1.toString());
              sqdb.insert(DataBase.TABLE_NAME3, DataBase.WIN, cv);
            
            return true;
            
        case IDM_B:
            Toast.makeText(getActivity(), "Добавлено в раздел провалено:(", Toast.LENGTH_LONG)
                    .show();
            cv.put(DataBase.LOSE, s1.toString());
              sqdb.insert(DataBase.TABLE_NAME2, DataBase.LOSE, cv);
            return true;
        }
        return super.onContextItemSelected(item);
    }
    
    
    @Override
    public void onResume(){
        super.onResume();
        sqh = new DataBase(getActivity().getApplicationContext());
        sqdb = sqh.getWritableDatabase();
         cursor = sqdb.query(DataBase.TABLE_NAME1, new String[] {
                DataBase._ID, DataBase.PROGRESS }, null,null,null,null,null);
     
        while (cursor.moveToNext()) {
            String name = cursor.getString(cursor.getColumnIndex(DataBase.PROGRESS));
            label.add(name);
        
        } 
        
        adapter = new ArrayAdapter <String> (getActivity(),android.R.layout.simple_list_item_1,label);
        lw1.setAdapter(adapter);
        cursor.close();
    }
    @Override
    public void onStop() {
        super.onStop();
 
        sqdb.close();
        sqh.close();
    }
    
    @Override
    public void onPause() {
        super.onPause();
        label.clear();
        
        
    }
 
 
}
первый
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
71
72
package info.androidhive.tabsswipe;
 
import java.util.ArrayList;
 
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
 
public class TopRatedFragment extends Fragment {
    
    DataBase sqh;
    SQLiteDatabase sqdb;
    ListView lw2;
    ArrayAdapter <String> adapter;
    ArrayList <String> label = new ArrayList <String>();
    Cursor cursor;
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
 
        View rootView = inflater.inflate(R.layout.fragment_top_rated, container, false);
    
        lw2 = (ListView) rootView.findViewById(R.id.lw2);
        sqh = new DataBase(getActivity().getApplicationContext());
          sqdb = sqh.getWritableDatabase();
          label = new ArrayList <String>();
          cursor = sqdb.query(DataBase.TABLE_NAME3, new String[] {
                    DataBase._ID, DataBase.WIN }, null,null,null,null,null);
         
            
        return rootView;
    }
    
 
    @Override
    public void onResume(){
        super.onResume();
        sqh = new DataBase(getActivity().getApplicationContext());
        sqdb = sqh.getWritableDatabase();
         cursor = sqdb.query(DataBase.TABLE_NAME3, new String[] {
                DataBase._ID, DataBase.WIN }, null,null,null,null,null);
     
        while (cursor.moveToNext()) {
            String name = cursor.getString(cursor.getColumnIndex(DataBase.WIN));
            label.add(name);
        
        } 
        
        adapter = new ArrayAdapter <String> (getActivity(),android.R.layout.simple_list_item_1,label);
        lw2.setAdapter(adapter);
        //cursor.close();
    }
    @Override
    public void onStop() {
        super.onStop();
 
        sqdb.close();
        sqh.close();
    }
    
    public void onPause() {
        super.onPause();
        label.clear();
    }
}
второй
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 info.androidhive.tabsswipe;
 
import java.util.ArrayList;
 
import info.androidhive.tabsswipe.R;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
 
public class GamesFragment extends Fragment {
    
    DataBase sqh;
    SQLiteDatabase sqdb;
    ListView lw3;
    ArrayAdapter <String> adapter;
    ArrayList <String> label = new ArrayList <String>();
    Cursor cursor;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_games, container,
                false);
        lw3 = (ListView) rootView.findViewById(R.id.lw3);
        sqh = new DataBase(getActivity().getApplicationContext());
          sqdb = sqh.getWritableDatabase();
          label = new ArrayList <String>();
          cursor = sqdb.query(DataBase.TABLE_NAME2, new String[] {
                    DataBase._ID, DataBase.LOSE }, null,null,null,null,null);
      
        return rootView;
    
    }
    @Override
    public void onResume(){
        super.onResume();
        sqh = new DataBase(getActivity().getApplicationContext());
        sqdb = sqh.getWritableDatabase();
         cursor = sqdb.query(DataBase.TABLE_NAME2, new String[] {
                DataBase._ID, DataBase.LOSE }, null,null,null,null,null);
     
        while (cursor.moveToNext()) {
            String name = cursor.getString(cursor.getColumnIndex(DataBase.LOSE));
                    label.add(name);
            
        } 
        
        adapter = new ArrayAdapter <String> (getActivity(),android.R.layout.simple_list_item_1,label);
        lw3.setAdapter(adapter);
        //cursor.close();
    }
    @Override
    public void onStop() {
        super.onStop();
 
        sqdb.close();
        sqh.close();
    }
    
    @Override
    public void onPause() {
        super.onPause();
        label.clear();
    }
}
Добавлено через 15 секунд
Проблема наверно в добавлении записи в таблицы. Т.к. в одну таблицу добавляет записи нормально и отображает, а два других фрагмента с другими таблицами вылетают с NullPointerException при том что, если бд пустая, то все ок запускается и отображается. Добавляю записи одинаково, только одна таблица нормально работает, а две другие которые через контекстное меню, крашатся. Помогите разобраться.

Здесь выбираю в какую таблицу добавить запись.
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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
package info.androidhive.tabsswipe;
 
import java.util.ArrayList;
 
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.Toast;
 
public class MoviesFragment extends Fragment {
    
ListView lw1;
ArrayAdapter <String> adapter;
ArrayList <String> label = new ArrayList <String>();
DataBase sqh;
SQLiteDatabase sqdb;
Cursor cursor;
ContentValues cv;
String s1;
public static final int IDM_A = 101;
public static final int IDM_B = 102;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        
        View rootView = inflater.inflate(R.layout.fragment_movies, container, false);
        lw1 = (ListView) rootView.findViewById(R.id.listrdy);
                
        sqh = new DataBase(getActivity().getApplicationContext());
        sqdb = sqh.getWritableDatabase();
        
        cv = new ContentValues();
         
      
        
         
            
            lw1.setOnItemClickListener(new OnItemClickListener() {
                  public void onItemClick(AdapterView<?> parent, View view,
                      int position, long id) {
                      
                       s1 = lw1.getItemAtPosition(position).toString();    
            
                  }
                });
            
            
            
            
        registerForContextMenu(lw1);
        label.clear();
        return rootView;
    }
    
    @Override
    public void onCreateContextMenu(ContextMenu menu, View v,
            ContextMenuInfo menuInfo) {
        super.onCreateContextMenu(menu, v, menuInfo);
        menu.add(Menu.NONE, IDM_A, Menu.NONE, "WIN");
        menu.add(Menu.NONE, IDM_B, Menu.NONE, "LOSE");
    }
    
 
    public boolean onContextItemSelected(MenuItem item) {
        switch (item.getItemId()) {
        case IDM_A:
            Toast.makeText(getActivity(), "Добавлено в раздел Выполнено", Toast.LENGTH_LONG)
                    .show();
            
            cv.put(DataBase.WIN, s1.toString());
              sqdb.insert(DataBase.TABLE_NAME3, DataBase.WIN, cv);
            
            return true;
            
        case IDM_B:
            Toast.makeText(getActivity(), "Добавлено в раздел провалено:(", Toast.LENGTH_LONG)
                    .show();
            cv.put(DataBase.LOSE, s1.toString());
              sqdb.insert(DataBase.TABLE_NAME2, DataBase.LOSE, cv);
            return true;
        }
        return super.onContextItemSelected(item);
    }
    
    
    @Override
    public void onResume(){
        super.onResume();
        sqh = new DataBase(getActivity().getApplicationContext());
        sqdb = sqh.getWritableDatabase();
         cursor = sqdb.query(DataBase.TABLE_NAME1, new String[] {
                DataBase._ID, DataBase.PROGRESS }, null,null,null,null,null);
     
        while (cursor.moveToNext()) {
            String name = cursor.getString(cursor.getColumnIndex(DataBase.PROGRESS));
            label.add(name);
        
        } 
        
        adapter = new ArrayAdapter <String> (getActivity(),android.R.layout.simple_list_item_1,label);
        lw1.setAdapter(adapter);
        cursor.close();
    }
    @Override
    public void onStop() {
        super.onStop();
 
        sqdb.close();
        sqh.close();
    }
    
    @Override
    public void onPause() {
        super.onPause();
        label.clear();
        
        
    }
 
 
}
первый
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
71
72
package info.androidhive.tabsswipe;
 
import java.util.ArrayList;
 
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
 
public class TopRatedFragment extends Fragment {
    
    DataBase sqh;
    SQLiteDatabase sqdb;
    ListView lw2;
    ArrayAdapter <String> adapter;
    ArrayList <String> label = new ArrayList <String>();
    Cursor cursor;
    
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
 
        View rootView = inflater.inflate(R.layout.fragment_top_rated, container, false);
    
        lw2 = (ListView) rootView.findViewById(R.id.lw2);
        sqh = new DataBase(getActivity().getApplicationContext());
          sqdb = sqh.getWritableDatabase();
          label = new ArrayList <String>();
          cursor = sqdb.query(DataBase.TABLE_NAME3, new String[] {
                    DataBase._ID, DataBase.WIN }, null,null,null,null,null);
         
            
        return rootView;
    }
    
 
    @Override
    public void onResume(){
        super.onResume();
        sqh = new DataBase(getActivity().getApplicationContext());
        sqdb = sqh.getWritableDatabase();
         cursor = sqdb.query(DataBase.TABLE_NAME3, new String[] {
                DataBase._ID, DataBase.WIN }, null,null,null,null,null);
     
        while (cursor.moveToNext()) {
            String name = cursor.getString(cursor.getColumnIndex(DataBase.WIN));
            label.add(name);
        
        } 
        
        adapter = new ArrayAdapter <String> (getActivity(),android.R.layout.simple_list_item_1,label);
        lw2.setAdapter(adapter);
        //cursor.close();
    }
    @Override
    public void onStop() {
        super.onStop();
 
        sqdb.close();
        sqh.close();
    }
    
    public void onPause() {
        super.onPause();
        label.clear();
    }
}
второй
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 info.androidhive.tabsswipe;
 
import java.util.ArrayList;
 
import info.androidhive.tabsswipe.R;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ListView;
 
public class GamesFragment extends Fragment {
    
    DataBase sqh;
    SQLiteDatabase sqdb;
    ListView lw3;
    ArrayAdapter <String> adapter;
    ArrayList <String> label = new ArrayList <String>();
    Cursor cursor;
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
            View rootView = inflater.inflate(R.layout.fragment_games, container,
                false);
        lw3 = (ListView) rootView.findViewById(R.id.lw3);
        sqh = new DataBase(getActivity().getApplicationContext());
          sqdb = sqh.getWritableDatabase();
          label = new ArrayList <String>();
          cursor = sqdb.query(DataBase.TABLE_NAME2, new String[] {
                    DataBase._ID, DataBase.LOSE }, null,null,null,null,null);
      
        return rootView;
    
    }
    @Override
    public void onResume(){
        super.onResume();
        sqh = new DataBase(getActivity().getApplicationContext());
        sqdb = sqh.getWritableDatabase();
         cursor = sqdb.query(DataBase.TABLE_NAME2, new String[] {
                DataBase._ID, DataBase.LOSE }, null,null,null,null,null);
     
        while (cursor.moveToNext()) {
            String name = cursor.getString(cursor.getColumnIndex(DataBase.LOSE));
                    label.add(name);
            
        } 
        
        adapter = new ArrayAdapter <String> (getActivity(),android.R.layout.simple_list_item_1,label);
        lw3.setAdapter(adapter);
        //cursor.close();
    }
    @Override
    public void onStop() {
        super.onStop();
 
        sqdb.close();
        sqh.close();
    }
    
    @Override
    public void onPause() {
        super.onPause();
        label.clear();
    }
}
Добавлено через 3 часа 30 минут
cv.put(DataBase.WIN, s1.toString()); убрал toString(), проблема осталась.

Добавлено через 2 часа 49 минут
проблема с крашем решилась.
Yandex
Объявления
13.08.2014, 23:02     NullPointerException
Ответ Создать тему
Опции темы

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