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

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

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android C++ TextEdit with keypad http://www.cyberforum.ru/android-dev/thread1241618.html
Здравствуйте, нужно помощь с созданием textedit который вызывает клавиатуру на с++. Буду рад за готовое решение, ну или наставления в данном направлении. п.с. Я под андроид не кодил, сейчас только...
Программирование Android Предварительная загрузка картинок Здравствуйте! В приложении картинки меняются перелистыванием, использую два экрана (активити), на каждом юзаю AsyncTasc, где в background-е подгружаю картинку с URL, которую потом ставлю в методе... http://www.cyberforum.ru/android-dev/thread1241487.html
Midi в FireMonkey C++ Программирование Android
Добрый день! Подскажите пожалуйста, как инклудится миди в Midi в FireMonkey C++ ? Есть код, содержащий миди и объявляемый как midiOutOpen(&Out,0,0,0,0); Компилятор дает ошибки, а #include...
Программирование Android Не понятное поведение BaseAdapter
Добрый день! Проблема в следующем: есть ListView, есть адаптер унаследованный от BaseAdapter. В адаптере в методе getView загружаю лайоут, на лайоуте два элемента TextView и Button. На кнопку...
Программирование Android При перезапуске телефона сбрасывается рекорд http://www.cyberforum.ru/android-dev/thread1241437.html
У меня проблема в игре с рекордом. Создается переменная статическая для счета и для рекорда , рекорд сравнивается с счетом и если счет больше рекорда то перезаписывается, все работает только есть...
Программирование Android Работа с классом View Здравствуйте форумчане, надеюсь все знают этот элемент View. Так вот не знаю как вернуться в начало(( Вроде и на гугле посмотрел и сам попробовал, не один назад и на один элемент вперед есть, а вот... подробнее

Показать сообщение отдельно
Lers
13 / 13 / 3
Регистрация: 27.05.2012
Сообщений: 203
13.08.2014, 23:02  [ТС]
Проблема наверно в добавлении записи в таблицы. Т.к. в одну таблицу добавляет записи нормально и отображает, а два других фрагмента с другими таблицами вылетают с 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 минут
проблема с крашем решилась.
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru