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

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

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

Создание списка из Базы - Программирование Android

04.05.2015, 14:01. Просмотров 348. Ответов 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
Всем доброго времени суток. Пробую писать программу для Android. Сейчас изучаю SQLite. Когда писал код по примерам все работало. База...

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

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

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

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

Создание элемента списка и дальнейшая работа с этим элементом - Программирование Android
Есть активность , в ней элемент список в котором мы можем назвать элемент и добавить его в список Задача такая - назвали элемент 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
0
Rube
911 / 559 / 88
Регистрация: 13.02.2014
Сообщений: 2,071
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,071
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,071
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,071
07.05.2015, 08:56 #9
Цитата Сообщение от Kollinar Посмотреть сообщение
я удалил весь onCreate и ошибка исчезла, а если удалить все внутри onCreate то выходит, с чем бы могло это быть вызвано?
Смотри в onCreate, думаю там ошибка.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
07.05.2015, 08:56
Привет! Вот еще темы с ответами:

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

Создание общего списка учащихся, редактирование списка, создание списков учащихся - Turbo Pascal
В файл занести сведения об учащихся школы в следующем формате: фамилия учащегося, класс, средний балл успеваемости. Разработать объект для...

Подсчет количества элементов вложенных списков из списка и создание нового списка из этих значений - Prolog
Подсчет количества элементов вложенных списков из списка и создание нового списка из этих значений. То есть имеем список состоящий из...

Создание списка и удаление элеметов этого списка - jQuery
Доброго времени суток! Прошу помощи реализовать небольшой код jQuery. Необходимо, чтобы после ввода в &lt;Input&gt; и нажатия Enter. Введеный...


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

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
07.05.2015, 08:56
Ответ Создать тему
Опции темы

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