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

SQLite в Service - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Как обращаться к кнопке из массива методом switch? http://www.cyberforum.ru/android-dev/thread1196180.html
Всем привет! Создал массив кнопок: Button buttons = new Button; А как обращаться к кнопкам из массива методом switch я не знаю(( Только не надо давать ссылки на книги на озоне. Спасибо!
Программирование Android Приложение останавливается сразу после открытия Приложение открывается и сразу has stoped просто пытаюсь присвоить текст TextView package com.example.time; import java.text.DateFormat; import java.text.SimpleDateFormat; import... http://www.cyberforum.ru/android-dev/thread1196089.html
Программирование Android Посоветуйте программу
Есть разобранный арк файл, в нем есть текстовый файл с массивом заметок каждая из которых открывается в отдельной странице, посоветуйте программу с помощью которой можно создать аналогичный текстовый...
Теория по Android Программирование Android
Здравствуйте друзья, есть такой вопрос. У параметра Visibility есть такие INVISIBLE и GONE. С INVISIBIL все понятно, прячет элемент, а вот что делает GONE, да типа тоже прячет, но вроде как совсем. В...
Программирование Android Часы для Android и ошибка "unfortunately clock has stopped" http://www.cyberforum.ru/android-dev/thread1195962.html
Задали лабораторную по создания приложения часов для андроид. По скольку ни с андройдом ни с явой не работал, пытаюсь разобраться. Написал приложение, но при запуске почему-то пишет "unfortunately...
Программирование Android Задать масштаб canvas Добрый вечер.У меня есть небольшая задумка.Я хочу поместить черный прямоугольник на экран телефона на котором включена камера.Я хочу видеть черный прямоугольник,как показано на картинке.Как бы я не... подробнее

Показать сообщение отдельно
NOSC
43 / 43 / 3
Регистрация: 10.10.2013
Сообщений: 297
06.06.2014, 17:16  [ТС]
Цитата Сообщение от YuraAAA Посмотреть сообщение
NOSC, покажите как Вы подключаете базу
Да собственно все подключается, не могу разобраться с ошибкой. Лог ниже:
Кликните здесь для просмотра всего текста
06-06 15:37:51.048: D/myLogs(14670): onCreate
06-06 15:37:51.048: D/myLogs(14670): onStartCommand
06-06 15:37:51.048: I/System.out(14670): Cell ID = 878078
06-06 15:37:51.058: I/SQLiteAssetHelper(14670): successfully opened database metrotrace.db
06-06 15:37:51.058: D/AndroidRuntime(14670): Shutting down VM
06-06 15:37:51.058: W/dalvikvm(14670): threadid=1: thread exiting with uncaught exception (group=0x40d2e930)
06-06 15:37:51.058: E/AndroidRuntime(14670): FATAL EXCEPTION: main
06-06 15:37:51.058: E/AndroidRuntime(14670): java.lang.RuntimeException: Unable to start service com.site.myservice.BaseStation@40fc7b80 with Intent { cmp=com.site.myservice/.BaseStation }: java.lang.IllegalArgumentException: the bind value at index 1 is null


Вот так сам сервис выглядит:
Кликните здесь для просмотра всего текста
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
public class BaseStation extends Service {
    final String LOG_TAG = "myLogs";
    String station_name;
    GsmCellLocation location;
    DataBase db;
    Cursor cursor;
    
    public void onCreate() {
        super.onCreate();
        Log.d(LOG_TAG, "onCreate");
        
      }
    public int onStartCommand(Intent intent, int flags, int startId) {
        Log.d(LOG_TAG, "onStartCommand");
        getLocation();
        return super.onStartCommand(intent, flags, startId);
      }
      public void onDestroy() {
            super.onDestroy();
            Log.d(LOG_TAG, "onDestroy");
          }
    @Override
    public IBinder onBind(Intent intent) {
        // TODO Auto-generated method stub
        return null;
    }
    
    void getLocation() {
        TelephonyManager tm  = (TelephonyManager)getSystemService(Context.TELEPHONY_SERVICE);
        location = (GsmCellLocation) tm.getCellLocation();
            Data.now_cellid = location.getCid();
            System.out.println("Cell ID = " + Data.now_cellid);
          simileDo();
    }
    void simileDo(){
        if (Data.now_cellid != Data.old_cellid) {
            choiceDb();
        } else {
            getLocation();
        }
    }
    void choiceDb() {
        db = new DataBase(this);
        cursor = db.doSomething(station_name);
    }
 
}


А вот так Курсор в helper'е :
Кликните здесь для просмотра всего текста
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public Cursor doSomething(String station) {
        SQLiteDatabase db = getWritableDatabase();
        SQLiteQueryBuilder qb = new SQLiteQueryBuilder();
        //1. Составляем запрос
        Cursor cursor = getWritableDatabase().rawQuery("SELECT * FROM mts WHERE cellid=?", new String[]{station});
        //2. Курсор должен быть не null и что-то в себе нести
        if (cursor != null && cursor.moveToFirst()) {
            String name = cursor.getString(cursor.getColumnIndex("station"));
            Log.d("Database", name);
            Data.now_station = name;
            
        }
        //3. Курсор обязательно закрываем
        closeCursor(cursor);
        return cursor;
    }
    
    private void closeCursor(Cursor c) {
        if (c != null && !c.isClosed()) {
            c.close();
        }
    }


Добавлено через 1 час 33 минуты
Поменял немного формат запроса, подглядел в программе, которая составляет запросы к базе sqlite, теперь мой класс helper выглядит так:
Кликните здесь для просмотра всего текста
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
public class DataBase extends SQLiteAssetHelper{
    private static final String DATABASE_NAME = "metrotrace.db";
    private static final int DATABASE_VERSION = 1;
    public static final String COLUMN_ID = "id";
    public static final String COLUMN_LOC = "cellid";
    public static final String COLUMN_ST = "station";
    SQLiteDatabase db = getWritableDatabase();
    public DataBase(Context context) {
        super(context, DATABASE_NAME, null, DATABASE_VERSION);
 
 
    }
    public Cursor doSomething(String station) {
        //1. Составляем запрос
        Cursor cursor = getWritableDatabase().rawQuery("SELECT station FROM mts WHERE cellid="+Data.now_cellid+" ORDER BY station ASC", new String[]{station});
        //2. Курсор должен быть не null и что-то в себе нести
        if (cursor != null && cursor.moveToFirst()) {
            String name = cursor.getString(cursor.getColumnIndex("station"));
            Log.d("Database", name);
            Data.now_station = name;
            
        }
        //3. Курсор обязательно закрываем
        closeCursor(cursor);
        return cursor;
    }
    
    private void closeCursor(Cursor c) {
        if (c != null && !c.isClosed()) {
            c.close();
        }
    }
}


Ошибка изменилась:
Кликните здесь для просмотра всего текста
06-06 16:56:57.669: D/myLogs(19811): onCreate
06-06 16:56:57.669: D/myLogs(19811): onStartCommand
06-06 16:56:57.679: I/System.out(19811): Cell ID = 878078
06-06 16:56:57.689: I/SQLiteAssetHelper(19811): successfully opened database metrotrace.db
06-06 16:56:57.699: D/AndroidRuntime(19811): Shutting down VM
06-06 16:56:57.699: W/dalvikvm(19811): threadid=1: thread exiting with uncaught exception (group=0x40d2e930)
06-06 16:56:57.699: E/AndroidRuntime(19811): FATAL EXCEPTION: main
06-06 16:56:57.699: E/AndroidRuntime(19811): java.lang.RuntimeException: Unable to start service com.site.myservice.BaseStation@40fcb328 with Intent { cmp=com.site.myservice/.BaseStation }: java.lang.IllegalArgumentException: the bind value at index 1 is null
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2800)
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.app.ActivityThread.access$1900(ActivityThread.java:153)
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1344)
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.os.Handler.dispatchMessage(Handler.java:99)
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.os.Looper.loop(Looper.java:137)
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.app.ActivityThread.main(ActivityThread.java:5226)
06-06 16:56:57.699: E/AndroidRuntime(19811): at java.lang.reflect.Method.invokeNative(Native Method)
06-06 16:56:57.699: E/AndroidRuntime(19811): at java.lang.reflect.Method.invoke(Method.java:511)
06-06 16:56:57.699: E/AndroidRuntime(19811): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:795)
06-06 16:56:57.699: E/AndroidRuntime(19811): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:562)
06-06 16:56:57.699: E/AndroidRuntime(19811): at dalvik.system.NativeStart.main(Native Method)
06-06 16:56:57.699: E/AndroidRuntime(19811): Caused by: java.lang.IllegalArgumentException: the bind value at index 1 is null
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.database.sqlite.SQLiteProgram.bindString(SQLiteProgram.java:164)
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.database.sqlite.SQLiteProgram.bindAllArgsAsStrings(SQLiteProgram.java:200)
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.database.sqlite.SQLiteDirectCursorDriver.query(SQLiteDirectCursorDriver.java:47)
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.database.sqlite.SQLiteDatabase.rawQueryWithFactory(SQLiteDatabase.java:1314)
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.database.sqlite.SQLiteDatabase.rawQuery(SQLiteDatabase.java:1253)
06-06 16:56:57.699: E/AndroidRuntime(19811): at com.site.myservice.DataBase.doSomething(DataBase.java:24)
06-06 16:56:57.699: E/AndroidRuntime(19811): at com.site.myservice.BaseStation.choiceDb(BaseStation.java:55)
06-06 16:56:57.699: E/AndroidRuntime(19811): at com.site.myservice.BaseStation.simileDo(BaseStation.java:48)
06-06 16:56:57.699: E/AndroidRuntime(19811): at com.site.myservice.BaseStation.getLocation(BaseStation.java:44)
06-06 16:56:57.699: E/AndroidRuntime(19811): at com.site.myservice.BaseStation.onStartCommand(BaseStation.java:26)
06-06 16:56:57.699: E/AndroidRuntime(19811): at android.app.ActivityThread.handleServiceArgs(ActivityThread.java:2783)
06-06 16:56:57.699: E/AndroidRuntime(19811): ... 10 more
0
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru