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

Создать базу данных на sdcard - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Написать программу Шрифт http://www.cyberforum.ru/android-dev/thread815277.html
Привет, Ребят... Такой вопрос.... как написать саму как программу (Шрифт.apk), которую устанавливает в телефон и она меняет полностью шрифт телефона?
Android Невозможно выставить в линию больше одного контрола Невозможно выставить в линию больше одного контрола, даже если ширина позволяет. Почему? Добавлено через 6 минут Разобрался, сори. http://www.cyberforum.ru/android-dev/thread815214.html
Android С чего начать?
Добрый вечер. Начинаю изучать платформу Android со стороны программирования. Какие советы дадите? Что нужно почитать из книг и прочей теории? А вообще: с чего нужно начинать? Какой язык программирования нужен? Какие среды посоветуете? Скачал оф. комплект для разработки - ADK и Eclipse, но разобраться, увы, не смог. Да и дебаггинг на PC не идет почему-то. Жду адекватного ответа. Надеюсь на...
Android Работа с изображениями в новом потоке
Доброго времени суток! У меня возникла проблемка с потоками, а собственно, не выходит работать с изображениями в новом потоке. На простом примере пробовал это реализовать но не выходит. Кто может, подкиньте может пару идей как исправить ошибки или более действенный метод для работы с изображениями в новом потоке. import android.app.Activity; import android.os.Bundle; import...
Android Перезапуск таймера http://www.cyberforum.ru/android-dev/thread814730.html
Странное поведение таймера. Если он отрабатывает, то в методе run() я посылаю некое событие. Если же я хочу прервать его работу, то вызываю cancel, но не обнуляю. Через некоторое время он посылает несколько событий. Такое ощущение, что не останавливается, а приостанавливается, а потом заново запускается. Почему ?
Android Копирование файла с Android на PC, или синхронизация SQLite Здравствуйте!!! У меня на телефоне есть база данных (путь до базы /data/data/имя приложения/databases/baza.db). Когда тестировал на эмуляторе то база без проблем копировалась в компьютер, выполнялись необходимые действия и заливалась обратно на телефон (adb.exe pull, adb.exe push). В реальных условиях (на реальном телефоне) все намного сложнее, при выполнении команд копирования пишет что нет... подробнее

Показать сообщение отдельно
fedormoore
0 / 0 / 0
Регистрация: 13.03.2013
Сообщений: 16

Создать базу данных на sdcard - Android

22.03.2013, 10:57. Просмотров 1655. Ответов 2
Метки (Все метки)

Здравствуйте! не как не могу создать базу на карточке

Файл DataBaseHelper.java:
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
package com.example.test;
 
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.util.ArrayList;
 
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteException;
import android.database.sqlite.SQLiteOpenHelper;
 
public class DataBaseHelper extends SQLiteOpenHelper {
 
    private static String DB_PATH = "mnt/sdcard/"; //путь к базе данных 
    private static String DB_NAME = "baza.sqlite"; //имя файла базы данных
    private SQLiteDatabase myDataBase;  
    private final Context myContext;
 
    public DataBaseHelper(Context context) {
        super(context, DB_NAME, null, 1);
        this.myContext = context;
    }   
 
    public void createDataBase() throws IOException{
        boolean dbExist = checkDataBase();
        if(!dbExist){ //если наша база не существует – скопировать её с ресурсов приложения
            getReadableDatabase();
            try {
                copyDataBase();
            } catch (IOException e) {}
        }
    }
 
    private boolean checkDataBase(){ //проверка на существования файла базы данных
        SQLiteDatabase checkDB = null;
        try{
            String myPath = DB_PATH + DB_NAME;
            checkDB = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READONLY);
        }catch(SQLiteException e){}
        if(checkDB != null)
            checkDB.close();
        return checkDB != null ? true : false;
    }
 
    private void copyDataBase() throws IOException{ //копировать базу данных из ресурсов
        InputStream myInput = myContext.getAssets().open(DB_NAME);
        String outFileName = DB_PATH + DB_NAME;
        OutputStream myOutput = new FileOutputStream(outFileName);
        byte[] buffer = new byte[1024];
        int length;
        while ((length = myInput.read(buffer))>0){
            myOutput.write(buffer, 0, length);
        }
        myOutput.close();
        myInput.close();
    }
 
    public void openDataBase() throws SQLException{//открыть базу
        String myPath = DB_PATH + DB_NAME;
        myDataBase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE);
    }
 
    @Override
    public void close() {
        if(myDataBase != null)
            myDataBase.close();
        super.close();
    }
 
    public void exec(String query){//отправка SQL-запроса
        myDataBase.execSQL(query);
    }
 
    public void selectData(ArrayList<String> list) {//выбор полученых данных
        Cursor cursor = myDataBase.query("mytable", new String[] {"text"}, null, null, null, null, "text ASC"); //используем класс Cursor для работы с получеными данными
        if (cursor.moveToFirst()) {//выбираем записи и заносим в ArrayList пока они есть
            do {
                list.add(cursor.getString(0)); //выбираем первый столбец из нашей выборки данных
            } while (cursor.moveToNext());
        }
        if ((cursor != null) && !(cursor.isClosed()))
            cursor.close();
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
    }
}
Файл MainActivity.java:
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
package com.example.test;
 
import java.io.IOException;
import java.util.ArrayList;
 
import android.os.Bundle;
import android.app.Activity;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.util.Log;
import android.view.Menu;
 
public class MainActivity extends Activity {
    
    DataBaseHelper mDbHelper = new DataBaseHelper(this);
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
    }
    
    public void onResume(){
        super.onResume();
        DataBaseHelper myDbHelper = new DataBaseHelper(this);
        ArrayList<String> list = new ArrayList<String>(0);
        try {
            //Если нету базы - создаем её
            myDbHelper.createDataBase();
        } catch (IOException ioe) {}
        try {
            //Открываем базу данных
            myDbHelper.openDataBase();
            //Делаем запрос на выборку данных
            myDbHelper.selectData(list);
            //Закрываем базу данных
            myDbHelper.close();
        }catch(SQLException sqle){}
        //Выводим результаты запроса в LogCat
        for(String item : list)
            Log.v("LIST", item);
    }
 
    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }
 
}
(сама база в проекте лежит в папочке assets)

и не смотря на то что путь у меня указан DB_PATH = "mnt/sdcard/" база создается по пути /data/data/com.example.test/databasesb
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
Текущее время: 05:32. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru