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

OnUpgrade сторонней БД из assets - Программирование Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Программирование Android Эмулятор Genymotion аккаунт гугл http://www.cyberforum.ru/android-dev/thread1443543.html
Кто с ним активно работал? Учусь работать с контактами (создавать/удалять/править) - конечно на рабочем телефоне не могу. Хочу научиться создавать контакт в определенном аккаунте (чтобы синхронизатор гугла подхватывал). Но не смог найти настроек аккаунта как в моем телефоне... Это у меня что-то глючит? Зависит от эмулируемого устройства(Nexux4-4.1.1-API16)? Руки кривые? Или Genymotion не...
Программирование Android Вычисления данных при чтении их из памяти в Android Studio Вытащил данные из памяти, а сложить их не могу. В чем ошибка? SharedPreferences sharedPreferences = getSharedPreferences("MyData",MODE_PRIVATE); String a=sharedPreferences.getString("MaxdosageChange",Default); String b=sharedPreferences.getString("MaxFlowChange",Default); int nA = Integer.parseInt(a); int nB = Integer.parseInt(a); int c = nA+nB; ... http://www.cyberforum.ru/android-dev/thread1443538.html
Новости в приложении Программирование Android
Всем доброго времени суток. Подскажите пожалуйста как реализовать задачу. Необходимо создать приложение в котором можно будет просматривать новостную ленту с сайта. Сделал через WebView по типу приложения-браузера, но хотелось бы получше раскрыть идею. Заранее спасибо.
настройка приложений Программирование Android
как настроить orbot с orweb не имея рут прав?
Программирование Android Хочу разобраться с ListView http://www.cyberforum.ru/android-dev/thread1443369.html
В приложении "Секундомер" хочу при нажатии кнопки Lap выводить значение круга в ListView. и при каждом новом нажатии добавлять новое значение в новую строку ListView. Не могу разобраться как это сделать. уже пробовал и так и сяк. Вот мой код Изначально при нажатии на клавишу "Старт" получаю значение StartDate final Button mLapButton = (Button) findViewById(R.id.LapButton);...
Программирование Android Передача чисел между активити Реакция на нажатие кнопки, переход в другое активити и передача значения переменной GAME_SCORE = 15; Intent intent = new Intent(MainActivity2Activity.this, MainActivity3Activity.class); intent.putExtra("id", GAME_SCORE); finish(); как забрать 15 в другом активити ?? подробнее

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

OnUpgrade сторонней БД из assets - Программирование Android

11.05.2015, 22:16. Просмотров 308. Ответов 1
Метки (Все метки)

Вообщем ситуевина следующего характера.. имеется сторонняя БД в assets.. при запуске мы читаем ее и записываем в БД программы.. с этим все понятно, но есть проблема следующего характера - как реализовать метод onUpgrade в случае обновления версии базы? перегуглил все что мог, но так и не нашел решения =(

код DBHelper'a

Кликните здесь для просмотра всего текста

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
133
134
135
136
137
138
import android.content.ContentValues;
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;
import android.util.Log;
 
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
 
 
public class DBHelper extends SQLiteOpenHelper {
 
    private static final String DB_NAME = "tramp.db";
    private static final int DB_VERSION = 1;
    private static final String DB_PATH = "/data/data/by.poy4eg.tramp/databases/"; //Путь к БД
 
    private static final String TABLE_CITIES = "TABLE_CITIES";   
    public static final String COLUMN_ID = "_id";
    public static final String COLUMN_IMG = "COLUMN_IMG";
    public static final String COLUMN_CITY = "COLUMN_CITY";
    public static final String COLUMN_CATEGORY = "COLUMN_CATEGORY";
    public static final String COLUMN_CONTENT = "COLUMN_CONTENT";
    
 
 
    private Context mCtx;
    public SQLiteDatabase mDB;
 
 
 
    public DBHelper(Context context) {
        super(context, DB_NAME, null, DB_VERSION);
        this.mCtx=context;
 
        boolean dbexist = checkdatabase();
        if (dbexist) {
            System.out.println("База данных существует");
            open();
        } else {
            System.out.println("База данных не существует!");
            createdatabase();
        }
    }
 
    public void createdatabase() {
        boolean dbexist = checkdatabase();
        if(dbexist) {
            //System.out.println("База данных существует");
        } else {
            this.getReadableDatabase();
            copydatabase();
        }
    }
    private boolean checkdatabase() {
        boolean checkdb = false;
        try {
            String myPath = DB_PATH + DB_NAME;
            File dbfile = new File(myPath);
            checkdb = dbfile.exists();
        } catch(SQLiteException e) {
            System.out.println("База данных не существует!");
        }
        return checkdb;
    }
    private void copydatabase(){
        Log.i("Database",
                "Новая база данных копируется на устройство!");
        byte[] buffer = new byte[1024];
        OutputStream myOutput = null;
        int length;
        // Открываем локальную БД как входящий поток
        InputStream myInput = null;
        try
        {
            myInput = mCtx.getAssets().open(DB_NAME);
            // Передаем данные из inputfile в outputfile
            myOutput = new FileOutputStream(DB_PATH + DB_NAME);
            while((length = myInput.read(buffer)) > 0)
            {
                myOutput.write(buffer, 0, length);
            }
            myOutput.close();
            myOutput.flush();
            myInput.close();
            Log.i("Database",
                    "Новая база данных скопирована на устройство");
        }
        catch(IOException e)
        {
            e.printStackTrace();
        }
    }
    // Открываем подключение к БД
    public void open() throws SQLException {
        String mypath = DB_PATH + DB_NAME;
        mDB = SQLiteDatabase.openDatabase(mypath, null, SQLiteDatabase.OPEN_READWRITE);
    }
    // Закрываем подключение
    public synchronized void close() {
        if(mDB != null) {
            mDB.close();
        }
        super.close();
    }
 
 
 
    // Получить данные из таблицы
    public Cursor getAllDataFromCities() {
        return mDB.query(TABLE_CITIES,
                new String[]{
                        COLUMN_CITY,
                        COLUMN_ID,
                        COLUMN_IMG,
                },
                null, null, null, null);
    }
   
 
 
 
    @Override
    public void onCreate(SQLiteDatabase mDB) {
        // TODO Auto-generated method stub
 
    }
 
    @Override
    public void onUpgrade(SQLiteDatabase mDB, int oldVersion, int newVersion) {    
       // TODO Auto-generated method stub
    }
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru