SimpleCusorAdapter в виджете
-
Максим Янчий
- Сообщения: 77
- Зарегистрирован: 21 июл 2013, 17:33
SimpleCusorAdapter в виджете
Здравствуйте! Хочется в виджет получать данные из БД, но при попытке сделать БД оберткой - db= new DB(this) - ругается и на эту строчку тоже ListView lvEveryday = (ListView)findViewById(R.id.lvEveryday);!
Помогите пожалуйста! Заранее благодарен!
Помогите пожалуйста! Заранее благодарен!
Re: SimpleCusorAdapter в виджете
Максим, не создавай новые темы, просто постарайся, если нет ответа, переформулировать свой вопрос конкретнее, олее развернуто и с кодом.
Вообще про доступ к БД нужно как правильно сказали, обратить внимание на ContentProvider, но с ним не так просто разобраться, а уж тем более тут все о нем объяснить, это очень большая тема.
К какой базе тебе нужен доступ? где она располагается, как ты и что пишешь в коде? Объясни все это, разложи по полочкам с уважением ко времени людей, пытающихся тебе помочь..
Вообще про доступ к БД нужно как правильно сказали, обратить внимание на ContentProvider, но с ним не так просто разобраться, а уж тем более тут все о нем объяснить, это очень большая тема.
К какой базе тебе нужен доступ? где она располагается, как ты и что пишешь в коде? Объясни все это, разложи по полочкам с уважением ко времени людей, пытающихся тебе помочь..
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
-
Максим Янчий
- Сообщения: 77
- Зарегистрирован: 21 июл 2013, 17:33
Re: SimpleCusorAdapter в виджете
Простите! База данных записей. Состоит из записи в формате String. Создавая виджет пишу в onEnabled():Foenix писал(а):Максим, не создавай новые темы, просто постарайся, если нет ответа, переформулировать свой вопрос конкретнее, олее развернуто и с кодом.
Вообще про доступ к БД нужно как правильно сказали, обратить внимание на ContentProvider, но с ним не так просто разобраться, а уж тем более тут все о нем объяснить, это очень большая тема.
К какой базе тебе нужен доступ? где она располагается, как ты и что пишешь в коде? Объясни все это, разложи по полочкам с уважением ко времени людей, пытающихся тебе помочь..
Код: Выделить всё
db= new DB(this);
db.open();
cursor=db.getData();
String[] from = new String[] {DB.SOMENOTE};
int[] to = new int[] {R.id.tvNote};
SimpleCursorAdapter scadapter = new SimpleCursorAdapter(this, R.layout.item, from, to);
ListView lv= (ListView)findViewById(R.id.lvWidget);
lv.setAdapter(scadapter);Код: Выделить всё
DB db;db= new DB(this);
И здесь:
SimpleCursorAdapter scadapter = new SimpleCursorAdapter(this, R.layout.item, from, to);
ListView lv= (ListView)findViewById(R.id.lvWidget);
В чем может быть проблема! Заранее спасибо за любую помощь!
Re: SimpleCusorAdapter в виджете
1. ДАвай договоримся, что база данных состоит из таблиц, а не из записей.
2. Приведи код этого самого класса DB. Ты ж вызываешь конструктор класса с параметрами.
3. Ну, и как мы должны догадаться, что пишет тебе компилятор при подчеркивании?
Сделай так - наведи мышь на эту строку, появится желтое окошко. Поставь туда курсор мыши и скопируй что там написано сюда. Да и вообще неплохо почитать, что там тебе пишут-то?
***
И здесь:
SimpleCursorAdapter scadapter = new SimpleCursorAdapter(this, R.layout.item, from, to);
ListView lv= (ListView)findViewById(R.id.lvWidget);
компилятор тоже пишет в чем проблема.............
2. Приведи код этого самого класса DB. Ты ж вызываешь конструктор класса с параметрами.
3. Ну, и как мы должны догадаться, что пишет тебе компилятор при подчеркивании?
Сделай так - наведи мышь на эту строку, появится желтое окошко. Поставь туда курсор мыши и скопируй что там написано сюда. Да и вообще неплохо почитать, что там тебе пишут-то?
***
И здесь:
SimpleCursorAdapter scadapter = new SimpleCursorAdapter(this, R.layout.item, from, to);
ListView lv= (ListView)findViewById(R.id.lvWidget);
компилятор тоже пишет в чем проблема.............
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
-
Максим Янчий
- Сообщения: 77
- Зарегистрирован: 21 июл 2013, 17:33
Re: SimpleCusorAdapter в виджете
в строке db= new DB(this);:Foenix писал(а):1. ДАвай договоримся, что база данных состоит из таблиц, а не из записей.
2. Приведи код этого самого класса DB. Ты ж вызываешь конструктор класса с параметрами.
3. Ну, и как мы должны догадаться, что пишет тебе компилятор при подчеркивании?
Сделай так - наведи мышь на эту строку, появится желтое окошко. Поставь туда курсор мыши и скопируй что там написано сюда. Да и вообще неплохо почитать, что там тебе пишут-то?
***
И здесь:
SimpleCursorAdapter scadapter = new SimpleCursorAdapter(this, R.layout.item, from, to);
ListView lv= (ListView)findViewById(R.id.lvWidget);
компилятор тоже пишет в чем проблема.............
Код: Выделить всё
The constructor DB(widget) is undefinedКод: Выделить всё
The constructor SimpleCursorAdapter(widget, int, Cursor, String[], int[]) is undefinedКод: Выделить всё
The method findViewById(int) is undefined for the type widgetКод: Выделить всё
public class DB {
private static final String DATABASE_NAME = "note_database.db";
private static final int DATABASE_VERSION = 1;
public static final String ID = "_id";
public static final String NOTE = "note";
public static final String TABLE_NAME = "note_table";
private static final String CREATE_DATABASE = "CREATE TABLE "
+ TABLE_NAME + " (" + ID + " INTEGER PRIMARY KEY AUTOINCREMENT,"
+ NOTE + " VARCHAR(255));";
private static final String DROP_TABLE = "DROP TABLE IF EXISTS "
+ TABLE_NAME;
private final Context c;
private DBHelper dbHelper;
private SQLiteDatabase db;
public DB(Context context){
c=context;
}
public void open(){
dbHelper = new DBHelper(c, DATABASE_NAME, null, DATABASE_VERSION);
db = dbHelper.getWritableDatabase();
}
public void close(){
if (dbHelper!=null) dbHelper.close();
}
public void delete(long id){
db.delete(TABLE_NAME, ID + "=" + id, null);
}
public Cursor getAllData(){
return db.query(TABLE_NAME, null, null,null,null,null,null);
}
public void insert(String note) {
ContentValues cv = new ContentValues();
cv.put(NOTE, note);
db.insert(TABLE_NAME, NOTE, cv);
}
private class DBHelper extends SQLiteOpenHelper {
public DBHelper(Context context, String name, CursorFactory factory, int Version){
super(context, name, factory, Version);
}
public void onCreate(SQLiteDatabase db){
db.execSQL(CREATE_DATABASE);
}
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(DROP_TABLE);
onCreate(db);
}
}
}Re: SimpleCusorAdapter в виджете
я с виджетами не работала, но когда создаешь объект БД, то нужно передать в конструктор контекст активити, а не виджет. У тебя активити нету, но есть объект application, поэтому попробуй взять контекст из него типа такого
Context mContext = getApplicationContext();
а затем передать это mContext в конструктор бд.
То же самое с адаптером.
***
ListView lv= (ListView)findViewById(R.id.lvWidget);:
тут не знаю, надо знать что делаешь, посмотри уроки по виджетам.
Context mContext = getApplicationContext();
а затем передать это mContext в конструктор бд.
То же самое с адаптером.
***
ListView lv= (ListView)findViewById(R.id.lvWidget);:
тут не знаю, надо знать что делаешь, посмотри уроки по виджетам.
R.id.team
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
NullPointerException - что делать???
viewtopic.php?f=33&t=3899&p=28952#p28952
Где моя ошибка?
viewtopic.php?f=60&t=3198
-
Максим Янчий
- Сообщения: 77
- Зарегистрирован: 21 июл 2013, 17:33
Re: SimpleCusorAdapter в виджете
С контекстом такую вещь уже провернул до этого, пошло, но все равно спасибо! Просто я выложил обе ошибки, чтобы выяснить, может одна влияет на другую!Foenix писал(а):я с виджетами не работала, но когда создаешь объект БД, то нужно передать в конструктор контекст активити, а не виджет. У тебя активити нету, но есть объект application, поэтому попробуй взять контекст из него типа такого
Context mContext = getApplicationContext();
а затем передать это mContext в конструктор бд.
То же самое с адаптером.
***
ListView lv= (ListView)findViewById(R.id.lvWidget);:
тут не знаю, надо знать что делаешь, посмотри уроки по виджетам.
Спасибо большое за помощь!