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

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

Войти
Регистрация
Восстановить пароль
 
BabyGluk
26 / 26 / 4
Регистрация: 10.04.2013
Сообщений: 167
#1

Context , Бд, активити - Android

13.10.2013, 15:05. Просмотров 313. Ответов 0
Метки нет (Все метки)

У меня есть 2 активити.
В 1 активити я добавляю данные в базу данных.
Java
1
2
3
4
t = new MTamagochi("pentr");
        IStorage storage = new IStorage(this);
        t.setAge(3);
        storage.Save(t);
во 2 активити я
делаю все тоже самое только вот вместо save вызываю load
Java
1
2
3
4
IStorage storage = new IStorage(this);
         MTamagochi ta = new MTamagochi("");
        storage.load(ta);
        Toast.makeText(this,""+ta.getExp(), Toast.LENGTH_SHORT).show();
и вижу , что данные не загрузились..
понял что во 2 активити нужно инициализировать базу с Context 1го активити, но не знаю как передать контекст.


вот сам клас бд
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
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
package com.example.tamagochi;
import android.content.ContentValues;
import android.content.Context;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
 
public class IStorage {
 
    private DBHelper dbHelper;
    private SQLiteDatabase db;
    private ContentValues cv;
    /*
     * я в цьому не впевнений, так як я не дуже поняв шо роблю, але думаю прийде цей час)
     */
    
     
    IStorage(Context context){
 
        this.dbHelper = new DBHelper(context);
           // подключаемся к БД
        this.db = dbHelper.getWritableDatabase();
        // создаем объект для данных
        this.cv = new ContentValues();
    }
    
    public void Save(MTamagochi tamagochi){
         // создаем объект для данных
        db.delete("tamagochi", null, null);
         
        cv = new ContentValues();
        cv.put("name", tamagochi.getName());
        cv.put("age", tamagochi.getAge());
        cv.put("healthy", tamagochi.getHealthy());
        cv.put("hangry", tamagochi.getHangry());
        cv.put("energy", tamagochi.getEnergy());
        cv.put("money", tamagochi.getMoney());
        cv.put("exp", tamagochi.getExp());
        cv.put("img", tamagochi.getImgUrl());
        cv.put("clean", tamagochi.getClean());
        db.insert("tamagochi", null, cv);
        cv.clear();
    }
 
    public void load(MTamagochi aTamagochi){
        
        // делаем запрос всех данных из таблицы mytable, получаем Cursor 
          Cursor c = db.query("tamagochi", null, null, null, null, null, null);
          if (c.moveToFirst()) {              
              // определяем номера столбцов по имени в выборке
              int nameColIndex = c.getColumnIndex("name");
              int ageColIndex = c.getColumnIndex("age");
              int healthyColIndex = c.getColumnIndex("healthy");
              int hangryColIndex = c.getColumnIndex("hangry");
              int energyColIndex = c.getColumnIndex("energy");
              int moneyColIndex = c.getColumnIndex("money");
              int expColIndex = c.getColumnIndex("exp");
              int imgColIndex = c.getColumnIndex("img");
              int CleanColIndex = c.getColumnIndex("clean");
              do {
                // получаем значения по номерам столбцов и пишем все в..
                  aTamagochi.setName(c.getString(nameColIndex));
                  aTamagochi.setAge(c.getInt(ageColIndex));
                  aTamagochi.setHealthy(c.getInt(healthyColIndex));
                  aTamagochi.setHangry(c.getInt(hangryColIndex));
                  aTamagochi.setEnergy(c.getInt(energyColIndex));
                  aTamagochi.setMoney(c.getInt(moneyColIndex));
                  aTamagochi.setExp(c.getInt(expColIndex));
                  aTamagochi.setImgUrl(imgColIndex);
                  aTamagochi.setClean(CleanColIndex);
               
                // переход на следующую строку 
                // а если следующей нет (текущая - последняя), то false - выходим из цикла
              } while (c.moveToNext());
            } else
            c.close();
        
    }
 
    public void Save(MFoods food){
         // создаем объект для данных
        ContentValues cv = new ContentValues();     
        cv.put("name", food.getName());
        cv.put("count", food.getCount());
        cv.put("hangry", food.getHangry());
        cv.put("energy", food.getEnergy());
        cv.put("cost", food.getCost());
        cv.put("exp", food.getExp());
        cv.put("img", food.getUrlImg());
        cv.put("eatAge", food.getEatAge());
        
        db.insert("tamagochi", null, cv);
        cv.clear();
    }
    public void load(MFoods food){
        // делаем запрос всех данных из таблицы mytable, получаем Cursor 
          Cursor c = db.query("foods", null, null, null, null, null, null);
          if (c.moveToFirst()) {              
              // определяем номера столбцов по имени в выборке
              int idColIndex = c.getColumnIndex("id");
              int nameColIndex = c.getColumnIndex("name");
              int countColIndex = c.getColumnIndex("count");
              int hangryColIndex = c.getColumnIndex("hangry");
              int energyColIndex = c.getColumnIndex("energy");
              int costColIndex = c.getColumnIndex("cost");
              int expColIndex = c.getColumnIndex("exp");
              int imgColIndex = c.getColumnIndex("img");
              int eatAgeColIndex = c.getColumnIndex("eatAge");
 
              do {
                // получаем значения по номерам столбцов и пишем все в..
                  food.set("name", c.getString(nameColIndex));
                  food.set("count", c.getString(countColIndex));
                  food.set("hangry", c.getString(hangryColIndex));
                  food.set("energy", c.getString(energyColIndex));
                  food.set("cost", c.getString(costColIndex));
                  food.set("exp", c.getString(expColIndex));
                  food.set("img", c.getString(imgColIndex));
                  food.set("eatAge", c.getString(eatAgeColIndex));
                  
                // переход на следующую строку 
                // а если следующей нет (текущая - последняя), то false - выходим из цикла
              } while (c.moveToNext());
            } else
            c.close();
    }
    
    public void Save(MToilet toilet){}
    public void load(MToilet toilet){}
    
    public void Save(MSand sand){}
    public void load(MSand sand){}
    
}
 
class DBHelper extends SQLiteOpenHelper {
 
    public DBHelper(Context context) {
      super(context, "TAMAGOCHI_DB", null, 1);
    }
 
    @Override
    public void onCreate(SQLiteDatabase db) {
 
        db.execSQL("create table tamagochi ("
                  + "id integer primary key autoincrement," 
                  + "name text,"
                  + "age int null,"
                  + "healthy int null,"
                  + "hangry int null,"
                  + "energy int null,"
                  + "money int null,"
                  + "exp int null,"
                  + "img int null"
                  + ");");
        
        
        db.execSQL("create table foods ("
                  + "id integer primary key autoincrement," 
                  + "name text,"
                  + "count int null,"
                  + "energy int null,"
                  + "hangry int null,"
                  + "cost int null,"
                  + "exp int null,"
                  + "img int null,"
                  + "eatAge int null"
                  + ");");
    }
 
 
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
 
    }
  }
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
13.10.2013, 15:05     Context , Бд, активити
Посмотрите здесь:

Android Как из Thread в отдельном классе получить context приложения?
Android Fragment and context
AsyncTask должен использовать Context Android
Android Вызов методов Context из статичного контекста
Можно ли так передавать context? Android
Context немного теории Android
Android Аналог context menu
Объект Context Android
Программирование Android. Context Android
Использование Context в других классах Android
Android Context - ошибка
Android Как получить context MainActivity в Service?

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Ответ Создать тему
Опции темы

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