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

Android, готовая база sql - Android

Войти
Регистрация
Восстановить пароль
Другие темы раздела
Android Eclipse. Не появляется иконка при инсталляции apk http://www.cyberforum.ru/android-dev/thread906541.html
Создаю новый проект в Эклипсе. Всё оставляю по умолчанию. Код вообще не трогаю нигде. Сохраняю файл apk Инсталирую его на андроид. Иконки нигде не появляются. Т.е. обычно при инсталяции любой программы появляется иконка, на которую можно нажать чтобы открыть программу. А тут ничего. Хотя при создании нового проекта в Эклипсе все иконки зелёного андроида есть. Как решить проблему?
Android Расположение объектов на канве с учетом масштабирования Добрый день. проблема в следующем,есть imageview, на канве в нем рисуем картинку (картинка большая, отрисовываем только часть с возможностью прокрутки) и поверх нее еще текст. Вроде бы все хорошо, картинка с текстом отрисовалась, перемещаем текст перерисовывается с учетом смещения тоже и остается на месте. НО если начинаем увеличивать/уменьшать изображение (scale), то не удается корректно... http://www.cyberforum.ru/android-dev/thread906489.html
Android Как правильно вставить SWF в Eclipse?
Создаю новый проект "MyGame". В папку "assets" размещаю сам SWF файл: "game.swf" В файл "main.xml" прописываю код: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" >
Android onActivityResult для Fragment
public class General_Activity extends FragmentActivity { public class TitleAdapter extends FragmentPagerAdapter { private final Fragment frags = new Fragment; public TitleAdapter(FragmentManager fm) { super(fm); frags = new General_Fragment1(); } } }
Android Проблемы с кодировкой http://www.cyberforum.ru/android-dev/thread905563.html
DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance(); DocumentBuilder builder = factory.newDocumentBuilder(); Document doc = builder.parse(new InputSource(new ByteArrayInputStream(data.getBytes("utf-8")))); NodeList nodes = doc.getElementsByTagName("userInfo"); Element element = (Element) nodes.item(0); NodeList title = element.getElementsByTagName("string");...
Android Questions новичка в андроиде Недавно начал изучать андроид и возникли следующие вопросы: 1) В чем преимущество использования фрагментов по сравнению с обычным вызовом другого activity? К примеру у меня есть пример простой программы где используются фрагменты. Там всего 2 скрина: на первом кнопка, по нажатию на нее показывается второй скрин с датой. На решение этой задачи с использованием фрагментов потребовалось 4 layout,... подробнее

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

Android, готовая база sql - Android

19.06.2013, 14:23. Просмотров 1061. Ответов 5
Метки (Все метки)

Доброго времени суток.
Очень нужна помощь!!!
Проблема следующая.Есть готовая база. Столбец с именами отображается в listview, при выборе элемента из списка нужно, чтобы открылась информация из другого столбца в textview. Пишет ошибку, догадываюсь, что ошибка в DataActivity, но не могу понять, что и как нужно поправить.
Буду признателен если кто нибудь подскажет.

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
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
 
import android.content.Context;
import android.database.Cursor;
import android.database.SQLException;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.util.Log;
 
public class ExternalDbOpenHelper extends SQLiteOpenHelper {
 
    //Путь к папке с базами на устройстве
    public static String DB_PATH;
    //Имя файла с базой
    public static String DB_NAME;
    public SQLiteDatabase database;
    public final Context context;
    
    public SQLiteDatabase getDb() {
        return database;
    }
 
    public ExternalDbOpenHelper(Context context, String databaseName) {
        super(context, databaseName, null, 1);
        this.context = context;
        //Составим полный путь к базам для вашего приложения
        String packageName = context.getPackageName();
        DB_PATH = String.format("//data//data//%s//databases//", packageName);
        DB_NAME = databaseName;
        openDataBase();
    }
 
    //Создаст базу, если она не создана
    public void createDataBase() {
        boolean dbExist = checkDataBase();
        if (!dbExist) {
            this.getReadableDatabase();
            try {
                copyDataBase();
            } catch (IOException e) {
                Log.e(this.getClass().toString(), "Copying error");
                throw new Error("Error copying database!");
            }
        } else {
            Log.i(this.getClass().toString(), "Database already exists");
        }
    }
    //Проверка существования базы данных
    private boolean checkDataBase() {
        SQLiteDatabase checkDb = null;
        try {
            String path = DB_PATH + DB_NAME;
            checkDb = SQLiteDatabase.openDatabase(path, null,
                    SQLiteDatabase.OPEN_READONLY);
        } catch (SQLException e) {
            Log.e(this.getClass().toString(), "Error while checking db");
        }
        //Ардроид не любит утечки ресурсов, все должно закрываться
        if (checkDb != null) {
            checkDb.close();
        }
        return checkDb != null;
    }
    //Метод копирования базы
    private void copyDataBase() throws IOException {
        // Открываем поток для чтения из уже созданной нами БД
        //источник в assets
        InputStream externalDbStream = context.getAssets().open(DB_NAME);
 
        // Путь к уже созданной пустой базе в андроиде
        String outFileName = DB_PATH + DB_NAME;
 
        // Теперь создадим поток для записи в эту БД побайтно
        OutputStream localDbStream = new FileOutputStream(outFileName);
 
        // Собственно копирование
        byte[] buffer = new byte[1024];
        int bytesRead;
        while ((bytesRead = externalDbStream.read(buffer)) > 0) {
            localDbStream.write(buffer, 0, bytesRead);
        }
        // Мы будем хорошими мальчиками(девочками) и закроем потоки
        localDbStream.close();
        externalDbStream.close();
 
    }
 
    public SQLiteDatabase openDataBase() throws SQLException {
        String path = DB_PATH + DB_NAME;
        if (database == null) {
            createDataBase();
            database = SQLiteDatabase.openDatabase(path, null,
                SQLiteDatabase.OPEN_READWRITE);
        }
        return database;
    }
    @Override
    public synchronized void close() {
        if (database != null) {
            database.close();
        }
        super.close();
    }
    @Override
    public void onCreate(SQLiteDatabase db) {}
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {}
 
    
}
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
package com.example.base;
 
import java.util.ArrayList;
import java.util.IdentityHashMap;
 
import com.example.base.R;
import com.example.base.R.id;
 
 
import db.dbhelper.ExternalDbOpenHelper;
import android.app.ListActivity;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.support.v4.widget.SimpleCursorAdapter;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListAdapter;
import android.widget.ListView;
import android.widget.AdapterView.OnItemClickListener;
 
 
public class MainActivity extends ListActivity {
    private static final String DB_NAME = "sasha.db3";
    //Хорошей практикой является задание имен полей БД константами
    private static final String TABLE_NAME = "names";
    private static final String FRIEND_ID = "_id";
    private static final String FRIEND_NAME = "name";
    
     protected ListAdapter adapter;
    private SQLiteDatabase database;
    private ListView listView;
    private ArrayList friends;
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
 
        //Наш ключевой хелпер
        ExternalDbOpenHelper dbOpenHelper = new ExternalDbOpenHelper(this, DB_NAME);
        database = dbOpenHelper.openDataBase();
        //Все, база открыта!
        fillFreinds();
        setUpList();
    }
 
private void setUpList() {
    //Используем стандартный адаптер и layout элемента для краткости
    setListAdapter(new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, friends));
    listView = getListView();
 
 
}
 
//Извлечение элементов из базы данных
private void fillFreinds() {
    friends = new ArrayList<String>();
    Cursor friendCursor = database.query(TABLE_NAME,
                                             new String[] {FRIEND_ID, FRIEND_NAME},
                         null, null,null,null,FRIEND_NAME);
        friendCursor.moveToFirst();
        if(!friendCursor.isAfterLast()) {
            do {
                
                                
                String name = friendCursor.getString(1);
                friends.add(name);
            } while (friendCursor.moveToNext());
        }
        friendCursor.close();
}
        
        public void onListItemClick(ListView parent, View view, int position, long id) {
            Intent intent = new Intent(this, DataActivity.class);
            Cursor cursor = (Cursor) adapter.getItem(position);
            intent.putExtra("PEPAK_ID", cursor.getInt(cursor.getColumnIndex("_id")));
            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
import com.example.base.R;
import db.dbhelper.ExternalDbOpenHelper;
import android.app.Activity;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.widget.ListAdapter;
import android.widget.TextView;
 
 
 
public class DataActivity extends Activity {
    private static final String DB_NAME = "sasha.db3";
    //Хорошей практикой является задание имен полей БД константами
    private static final String TABLE_NAME = "namesl";
    private static final String FRIEND_ID = "_id";
    private static final String FRIEND_ALL = "all";
    protected ListAdapter adapter;
    private SQLiteDatabase database;
 
 
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.test);
        long id = getIntent().getLongExtra("_id",-6);
        //Наш ключевой хелпер
        ExternalDbOpenHelper dbOpenHelper = new ExternalDbOpenHelper(this, DB_NAME);
        database = dbOpenHelper.openDataBase();
        //Все, база открыта!
        Cursor c = database.query(TABLE_NAME, new String[] {FRIEND_ID, FRIEND_ALL},
                                    null, null,null,null,FRIEND_ALL);
        TextView lv = (TextView) findViewById(R.id.text1);
       
        //выводим все в текствьюхи
        if (c.moveToFirst()) {
           
            lv.setText(c.getString(c.getColumnIndex(FRIEND_ALL)));
        }
        dbOpenHelper.close();
       database.close();
        
}
        
}
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru