PDA

View Full Version : مشکل خواندن Database آماده



master94
دوشنبه 22 تیر 1394, 00:41 صبح
سلام...
یک listView دارم که آیتم هاشو از روی دیتابیس میخونه، میخوام روی هر کدوم از آیتم هاش که کلیک شد،توی activity دوم ، یک column دیگه ازش نمایش داده بشه(دقیقا مثل برنامه های دیکشنری)
ولی مشکلی که هست توی activity دوم ، هر جوری میخوام از دیتابیس بخونم،نمیشه!
# از کتابخونه Sqlite Asset Helper استفاده میکنم...

کلاس database:
public class MyDatabase extends SQLiteAssetHelper {private static final String DATABASE_NAME = "database.db";
private static final int DATABASE_VERSION = 1;
public MyDatabase(Context context) {
super(context, DATABASE_NAME, null, DATABASE_VERSION);
}
}



داخل activity اول ، یک listview هست که از روی دیتابیس میخونه:
private void fillFromDb() {
G.itemLists.clear();
Cursor cursor = mydb.rawQuery("select * from test order by title limit 0,50 ", null);
while (cursor.moveToNext()) {
StructNote test1 = new StructNote();
G.itemLists.add(test1);
}
cursor.close();
mydb.close();
adapter.notifyDataSetChanged();
}

تا این جا همه چیز OK ه
ولی توی activity دوم ، نمیشه کوئری گرفت!



@Override
protected void onResume() {
G.currentActivity = this;
super.onResume();
}




@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.result);


Cursor cursor = mydb.rawQuery("SELECT * FROM test ", null);
while (cursor.moveToNext()) {
try {
Log.i("LOG", cursor.getString(cursor.getColumnIndex("title")));
}
catch (Exception e) {}
}
cursor.close();
mydb.close();
}
}

و logCat :
NullPointerException

ممنون میشم راهنماییم کنید...

master94
دوشنبه 22 تیر 1394, 01:18 صبح
مشکل حل شد...
باید توی متد OnCreate این رو اضافه میکردم:
MyDataBase = new MyDatabase(this);

یعنی میشه:

@Overridepublic void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.result);


MyDataBase = new MyDatabase(this); // <-----
mydb = MyDataBase.getWritableDatabase(); // <-----


Cursor cursor = mydb.rawQuery("SELECT * FROM test ", null);
while (cursor.moveToNext()) {
try {
Log.i("LOG", cursor.getString(cursor.getColumnIndex("title")));
}
catch (Exception e) {}
}
cursor.close();
mydb.close();
}