Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Kollinar
1 / 1 / 0
Регистрация: 19.02.2013
Сообщений: 78
1

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

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

У меня есть база, а на 2 странице должен быть список, но выдает ошибку
0
Вложения
Тип файла: zip predmet.zip (2.04 Мб, 1 просмотров)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.05.2015, 14:01
Ответы с готовыми решениями:

Создание базы данных
Всем доброго времени суток. Пробую писать программу для Android. Сейчас изучаю...

Создание базы данных в Android
Помогите пожалуйста! Я только-только начинаю изучать программирование на...

Создание базы, ввод и вывод информации
Здравствуйте программирую недавно, дали задание в университете. Срочно нужна...

Создание вложенного списка
Нужно что бы в каждом элементе списка находился внутренний элемент ListView....

Создание списка с настраиваемыми элементами
Хочу создать список с настраиваемыми элементами. Нашел урок, сделал, программа...

8
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
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
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);
0
Kollinar
1 / 1 / 0
Регистрация: 19.02.2013
Сообщений: 78
05.05.2015, 16:21  [ТС] 4
я добавил
Java
1
dbHelper = new DBHelper(this);
в onCreate
но ошибка
Unfortunately, ----- has stopped.
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
05.05.2015, 19:47 5
Java
1
2
dbHelper = new DBHelper(this);
SQLiteDatabase db = dbHelper.getWritableDatabase();
0
Kollinar
1 / 1 / 0
Регистрация: 19.02.2013
Сообщений: 78
06.05.2015, 07:50  [ТС] 6
перенесь
Java
1
SQLiteDatabase db = dbHelper.getWritableDatabase();
тоже в onCreate ошибка в приложении, а если я ставлю перед onCreate оба то жалуется на ; в строке выше и просит удалить.
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
06.05.2015, 07:59 7
Цитата Сообщение от Kollinar Посмотреть сообщение
а если я ставлю перед onCreate
Перед onCreate ничего нет, там мрак.
Цитата Сообщение от Kollinar Посмотреть сообщение
тоже в onCreate ошибка в приложении
Видимо ошибка в 36 строке.
0
Kollinar
1 / 1 / 0
Регистрация: 19.02.2013
Сообщений: 78
06.05.2015, 17:20  [ТС] 8
я удалил весь onCreate и ошибка исчезла, а если удалить все внутри onCreate то выходит, с чем бы могло это быть вызвано?
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,074
07.05.2015, 08:56 9
Цитата Сообщение от Kollinar Посмотреть сообщение
я удалил весь onCreate и ошибка исчезла, а если удалить все внутри onCreate то выходит, с чем бы могло это быть вызвано?
Смотри в onCreate, думаю там ошибка.
0
07.05.2015, 08:56
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2015, 08:56

Создание списка приёма и отправки сообщения android
Здравствуйте!пишу программу для отправки и приёма сообщения!с отправкой...

Создание элемента списка и дальнейшая работа с этим элементом
Есть активность , в ней элемент список в котором мы можем назвать элемент и...

Создание списка, печать списка на экран, добавления элемента в начало списка, конец списка
Построить динамическую структуру типа список . Необходимо реализовать следующие...


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

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

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