Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
Lers
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
#1

NullPointerException

12.08.2014, 17:10. Просмотров 993. Ответов 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)
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.08.2014, 17:10
Ответы с готовыми решениями:

NullPointerException
Здравствуйте! На строке AutoCompleteTextView textView =...

NullPointerException
Не пойму почему налл?? @Override public View...

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

NullPointerException
В методе присутствует вот такая конструкция new Thread(new...

NullPointerException
Button button = (Button)findViewById(R.id.button);...

10
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
12.08.2014, 18:17 #2
Цитата Сообщение от Lers Посмотреть сообщение
android.widget.ArrayAdapter.createViewFromResource(ArrayAdapter.java:394)
вот тут он вылезает, а что там уже смотрите. Скорей всего передали файл ресурсов, в котором не прописали id вьюхи, по которому ищется.
0
Lers
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
12.08.2014, 18:34  [ТС] #3
Java
1
2
Resources res = getResources();
 String [] mas = res.getStringArray(R.array.str);
Вот так я беру итемы из str
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
12.08.2014, 18:35 #4
где создается сам адаптер?
0
Lers
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
12.08.2014, 18:37  [ТС] #5
для чего адаптер?
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
12.08.2014, 18:41 #6
ArrayAdapter, тот самый который падает
0
Lers
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
12.08.2014, 18:44  [ТС] #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();
}
}
0
NiRamz
211 / 211 / 33
Регистрация: 26.12.2010
Сообщений: 691
12.08.2014, 18:50 #8
а с чего вы решили что падает в этом классе? ресурсы - это не только массив строк, это все что лежит в папке res. где создается адаптер?
0
Lers
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
12.08.2014, 19:17  [ТС] #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();
    }
}
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
13.08.2014, 09:32 #10
Lers, в debug же можно проверить какая строка падает.
Предположу, что label пуст.
Java
1
2
3
4
5
        while (cursor.moveToNext()) {
            String name = cursor.getString(cursor.getColumnIndex(DataBase.WIN));
            label.add(name);
        
        }
1
Lers
13 / 13 / 6
Регистрация: 27.05.2012
Сообщений: 208
13.08.2014, 23:02  [ТС] #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 минут
проблема с крашем решилась.
0
13.08.2014, 23:02
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.08.2014, 23:02

Admob NullPointerException
@Override public void onCreate(Bundle savedInstanceState) { ...

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

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


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

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Опции темы

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