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

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

Войти
Регистрация
Восстановить пароль
 
Kollinar
1 / 1 / 0
Регистрация: 19.02.2013
Сообщений: 78
#1

Создание списка из Базы - Android

04.05.2015, 14:01. Просмотров 327. Ответов 8
Метки нет (Все метки)

У меня есть база, а на 2 странице должен быть список, но выдает ошибку
Вложения
Тип файла: zip predmet.zip (2.04 Мб, 1 просмотров)
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Kollinar
1 / 1 / 0
Регистрация: 19.02.2013
Сообщений: 78
05.05.2015, 12:02  [ТС]     Создание списка из Базы #2
Вот код который должен выполняться по нажатию кнопки
Java
1
2
              Intent intent = new Intent(this, Table.class);
              startActivity(intent);
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
package com.example.predmet;
 
 
import android.app.ListActivity;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;
 
public class Table extends ListActivity {  
    
        DBHelper dbHelper;
        String[] mName;
        String[] mGroup;
        
        // подключаемся к БД
        SQLiteDatabase db = dbHelper.getWritableDatabase();
        
      @Override  
      public void onCreate(Bundle savedInstanceState) {  
        super.onCreate(savedInstanceState);  
        setContentView(R.layout.table); 
        
     // делаем запрос всех данных из таблицы mytable, получаем Cursor
                Cursor c = db.query("mytable", null, null, null, null, null, null);
 
                // ставим позицию курсора на первую строку выборки
                // если в выборке нет строк, вернется false
                if (c.moveToFirst()) {
 
                    // определяем номера столбцов по имени в выборке
                    int idColIndex = c.getColumnIndex("id");
                    int nameColIndex = c.getColumnIndex("name");
                    int emailColIndex = c.getColumnIndex("email");
                    
                    //создание масива для списка
                    mName = new String[c.getCount()];
                    mGroup = new String[c.getCount()];
                    int i = 0;
                    
                    do {
                        // получаем значения по номерам столбцов и пишем все в массив
                        
                        mName[i] = c.getString(nameColIndex);
                        mGroup[i] = c.getString(emailColIndex);
 
                        // переход на следующую строку
                        // а если следующей нет (текущая - последняя), то false -
                        // выходим из цикла
                        
                    } while (c.moveToNext());
                } else
                    Toast.makeText (getApplicationContext(), "Ошибка", Toast.LENGTH_SHORT).show();
                c.close();
                
                // закрываем подключение к БД
                dbHelper.close();
              
        ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(this, R.layout.item, mName);  
        setListAdapter(mAdapter);
        
      }
          
      public void onListItemClick (ListView parent, View v, int position, long id) {  
        Toast.makeText (getApplicationContext(), mName[position], Toast.LENGTH_SHORT).show();  
      }
      public class myAdapter extends BaseAdapter {  
            private LayoutInflater mLayoutInflater;  
                  
            public myAdapter (Context ctx) {  
              mLayoutInflater = LayoutInflater.from(ctx);  
            }  
                  
            public int getCount () {  
              return mName.length;  
            }  
                  
            public Object getItem (int position) {  
              return position;  
            }  
                  
            public long getItemId (int position) {  
              return position;  
            }  
                  
            public String getString (int position) {  
              return mName[position] + " (" + mGroup[position] + ")";  
            }  
                  
            public View getView(int position, View convertView, ViewGroup parent) {   
              if (convertView == null)  
                convertView = mLayoutInflater.inflate(R.layout.item, null);  
                       
              TextView sign = (TextView)convertView.findViewById(R.id.Sign);  
              sign.setText(mName[position]);  
          
              TextView date = (TextView)convertView.findViewById(R.id.Date);  
              date.setText(mGroup[position]);               
              return convertView;  
            }  
          }
      class DBHelper extends SQLiteOpenHelper {
 
            public DBHelper(Context context) {
                // конструктор суперкласса
                super(context, "myDB", null, 1);
            }
 
            @Override
            public void onCreate(SQLiteDatabase db) {
                // создаем таблицу с полями
                db.execSQL("create table mytable ("
                        + "id integer primary key autoincrement," + "name text,"
                        + "email text" + ");");
            }
 
            @Override
            public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
 
            }
        }
      
    }
и лог:
Кликните здесь для просмотра всего текста

05-05 08:59:54.015: I/ActivityManager(76): START {cmp=com.example.predmet/.Table} from pid 552
05-05 08:59:54.015: W/WindowManager(76): Failure taking screenshot for (180x300) to layer 21010
05-05 08:59:54.025: D/myLogs(552): --- Clear mytable: ---
05-05 08:59:54.067: D/myLogs(552): deleted rows count = 0
05-05 08:59:54.115: D/AndroidRuntime(552): Shutting down VM
05-05 08:59:54.115: W/dalvikvm(552): threadid=1: thread exiting with uncaught exception (group=0x409961f8)
05-05 08:59:54.135: E/AndroidRuntime(552): FATAL EXCEPTION: main
05-05 08:59:54.135: E/AndroidRuntime(552): java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.example.predmet/com.example.predmet.Table}: java.lang.NullPointerException
05-05 08:59:54.135: E/AndroidRuntime(552): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1879)
05-05 08:59:54.135: E/AndroidRuntime(552): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:1980)
05-05 08:59:54.135: E/AndroidRuntime(552): at android.app.ActivityThread.access$600(ActivityThread.java:122)
05-05 08:59:54.135: E/AndroidRuntime(552): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1146)
05-05 08:59:54.135: E/AndroidRuntime(552): at android.os.Handler.dispatchMessage(Handler.java:99)
05-05 08:59:54.135: E/AndroidRuntime(552): at android.os.Looper.loop(Looper.java:137)
05-05 08:59:54.135: E/AndroidRuntime(552): at android.app.ActivityThread.main(ActivityThread.java:4340)
05-05 08:59:54.135: E/AndroidRuntime(552): at java.lang.reflect.Method.invokeNative(Native Method)
05-05 08:59:54.135: E/AndroidRuntime(552): at java.lang.reflect.Method.invoke(Method.java:511)
05-05 08:59:54.135: E/AndroidRuntime(552): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:784)
05-05 08:59:54.135: E/AndroidRuntime(552): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:551)
05-05 08:59:54.135: E/AndroidRuntime(552): at dalvik.system.NativeStart.main(Native Method)
05-05 08:59:54.135: E/AndroidRuntime(552): Caused by: java.lang.NullPointerException
05-05 08:59:54.135: E/AndroidRuntime(552): at com.example.predmet.Table.<init>(Table.java:26)
05-05 08:59:54.135: E/AndroidRuntime(552): at java.lang.Class.newInstanceImpl(Native Method)
05-05 08:59:54.135: E/AndroidRuntime(552): at java.lang.Class.newInstance(Class.java:1319)
05-05 08:59:54.135: E/AndroidRuntime(552): at android.app.Instrumentation.newActivity(Instrumentation.java:1023)
05-05 08:59:54.135: E/AndroidRuntime(552): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:1870)
05-05 08:59:54.135: E/AndroidRuntime(552): ... 11 more
05-05 08:59:54.175: W/ActivityManager(76): Force finishing activity com.example.predmet/.Table
05-05 08:59:54.175: W/ActivityManager(76): Force finishing activity com.example.predmet/.MainActivity
05-05 08:59:54.265: I/WindowManager(76): createSurface Window{41417b10 paused=false}: DRAW NOW PENDING
05-05 08:59:54.685: W/ActivityManager(76): Activity pause timeout for ActivityRecord{4150a588 com.example.predmet/.Table}
05-05 08:59:54.705: W/NetworkManagementSocketTagger(76): setKernelCountSet(10005, 1) failed with errno -2
05-05 08:59:54.745: I/WindowManager(76): createSurface Window{4150b2b0 com.android.launcher/com.android.launcher2.Launcher paused=false}: DRAW NOW PENDING
05-05 08:59:54.935: W/NetworkManagementSocketTagger(76): setKernelCountSet(10042, 0) failed with errno -2
05-05 08:59:54.945: I/ARMAssembler(35): generated scanline__00000077:03010104_00008001_00000000 [ 89 ipp] (110 ins) at [0x40e7b8c8:0x40e7ba80] in 1013193 ns
05-05 08:59:55.645: I/dalvikvm(76): Jit: resizing JitTable from 4096 to 8192
05-05 09:00:04.944: W/ActivityManager(76): Activity destroy timeout for ActivityRecord{4165e770 com.example.predmet/.MainActivity}
05-05 09:00:04.944: W/ActivityManager(76): Activity destroy timeout for ActivityRecord{4150a588 com.example.predmet/.Table}
05-05 09:00:46.674: W/ThrottleService(76): unable to find stats for iface rmnet0
05-05 09:00:51.594: D/dalvikvm(187): GC_CONCURRENT freed 402K, 6% free 10331K/10951K, paused 10ms+4ms
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
05.05.2015, 13:01     Создание списка из Базы #3
Java
1
2
3
4
5
DBHelper dbHelper; 
String[] mName; 
String[] mGroup; 
// подключаемся к БД 
SQLiteDatabase db = dbHelper.getWritableDatabase();
Инициализацию dbHelper забыли.
Java
1
mDBHelper = new DBHelper(this);
Kollinar
1 / 1 / 0
Регистрация: 19.02.2013
Сообщений: 78
05.05.2015, 16:21  [ТС]     Создание списка из Базы #4
я добавил
Java
1
dbHelper = new DBHelper(this);
в onCreate
но ошибка
Unfortunately, ----- has stopped.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
05.05.2015, 19:47     Создание списка из Базы #5
Java
1
2
dbHelper = new DBHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
Kollinar
1 / 1 / 0
Регистрация: 19.02.2013
Сообщений: 78
06.05.2015, 07:50  [ТС]     Создание списка из Базы #6
перенесь
Java
1
SQLiteDatabase db = dbHelper.getWritableDatabase();
тоже в onCreate ошибка в приложении, а если я ставлю перед onCreate оба то жалуется на ; в строке выше и просит удалить.
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
06.05.2015, 07:59     Создание списка из Базы #7
Цитата Сообщение от Kollinar Посмотреть сообщение
а если я ставлю перед onCreate
Перед onCreate ничего нет, там мрак.
Цитата Сообщение от Kollinar Посмотреть сообщение
тоже в onCreate ошибка в приложении
Видимо ошибка в 36 строке.
Kollinar
1 / 1 / 0
Регистрация: 19.02.2013
Сообщений: 78
06.05.2015, 17:20  [ТС]     Создание списка из Базы #8
я удалил весь onCreate и ошибка исчезла, а если удалить все внутри onCreate то выходит, с чем бы могло это быть вызвано?
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2015, 08:56     Создание списка из Базы
Еще ссылки по теме:

Android Обновление Базы данных
Android Создание списка приёма и отправки сообщения android
Создание базы данных Android
Android Создание элемента списка и дальнейшая работа с этим элементом
Android Создание списка с настраиваемыми элементами

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

Или воспользуйтесь поиском по форуму:
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,070
07.05.2015, 08:56     Создание списка из Базы #9
Цитата Сообщение от Kollinar Посмотреть сообщение
я удалил весь onCreate и ошибка исчезла, а если удалить все внутри onCreate то выходит, с чем бы могло это быть вызвано?
Смотри в onCreate, думаю там ошибка.
Yandex
Объявления
07.05.2015, 08:56     Создание списка из Базы
Ответ Создать тему
Опции темы

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