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

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

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

NullPointerException - Android

12.08.2014, 17:10. Просмотров 798. Ответов 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)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
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
Сообщений: 202
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
Сообщений: 202
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
Сообщений: 202
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
Сообщений: 202
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
Еще ссылки по теме:

NullpointerException при записи файла Android
NullPointerException Android
NullPointerException Android
Android Unboxing of may produce NullPointerException
NullPointerException в адаптере RecyclerView Android

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

Или воспользуйтесь поиском по форуму:
Lers
12 / 12 / 3
Регистрация: 27.05.2012
Сообщений: 202
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
Ответ Создать тему
Опции темы

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