پاک شدن لیست علاقه ها با خاموش کردن گوشی
من توی دیتا بیس یه فیلد به نام like دارم وقتی 1 میشه یه ایتم به علاقه مندی ها اضافه میشه مشکل اینجاست با خاموش کردن گوشی لیست علاق ها پاک میشه راه حل چیه؟ممنون میشم راهنمایی کنی.
این لینک زیر رو دان کن یه پروژه کتاب که میتوی توش به علاقه مندی هات اضافه کنی داخلش یه کلاس هست به نام database توی اون کدهایی هست که از کد هایی که زیر نوشتم کاملتره میتونی خودت بری با ازمون و خطا با اون کار کنی و درست هم کار میکنی برو با کد های دیتا بیس خودت مقایسه کن مشکل رو پیدا کن dataofstorys اسم دیتا بیس منه که تو استس هم هست datastorys هم اسم تیبل منه . موفق باشی
http://www.uploadbaz.com/y0sbdgjf4dvv
public void useable() {
boolean checkdb = checkdb();
if (checkdb) {
} else {
this.getReadableDatabase();
try {
copydatabase();
}
catch (IOException e) {
}
}
}
//-------------------------------------------------
public boolean checkdb() {
SQLiteDatabase db = null;
try {
db = SQLiteDatabase.openDatabase(path + Name, null, SQLiteDatabase.OPEN_READONLY);
}
catch (SQLException e) {
}
return db != null ? true : false;
}
//------------------------------------------------------
public void copydatabase() throws IOException {
OutputStream myOutput = new FileOutputStream(path + Name);
byte[] buffer = new byte[1024];
int lenght;
InputStream myInput = mycontext.getAssets().open(Name);
while ((lenght = myInput.read(buffer)) > 0) {
myOutput.write(buffer, 0, lenght);
}
myInput.close();
myOutput.flush();
myOutput.close();
}
سلام. دوست عزیزم از اینجا این کلاس رو دانلود کن لینک فایل و بعد اینکه به پروژه ات اضافه کردی. توسط دستور زیر ازش استفاده کن هر فایلی رو میتونه به sdcard کپی کنه...
AssetManager assetManager = G.context.getAssets();
InputStream inputStream;
try {
inputStream = assetManager.open("database_test.sqlite");
HelperIO.copyFile(inputStream, G.DIR_DATABAES + "/copyDB.sqlite");
}
catch (IOException e) {
e.printStackTrace();
}
دوست عزیز من روشی رو واسه دیتابیس ندونستم اما یه روش به ذهنم رسید که جواب میده...
بیا بار اول که یه دایرکتوری ایجاد میکنی و توش دیتابیس کپی میشه بیا مانند کد زیر عمل کن :
ما اینجا گفتیم که اگه دایرکتوری دیتابیس وجود نداشت بنابراین اگه دایرکتوریش نباشه 100 درصد دیتابیس هم نیستش اما در صورتی که بود دیگه دستور کپی کار نمیکنه. امیدوارم متوجه شده باشی. اما تنها ایراد این روش اینه که اگه کاربر خودش بره دستی از داخل پوشه فقط فایل دیتابیس رو حذف کنه دیگه جواب نمیده دیگه چون برنامه میبینه دایرکتوری وجود داره و فکر میکنه دیتابیس هم وجود داره.
File file = new File(G.DIR_DATABAES);
if(!file.exists()){
HelperIO.copyFile(inputStream, G.DIR_DATABAES + "/copyDB.sqlite");
}
سلام از این دستور برای بررسی وجود دیتابیس استفاده کنید :
if (!database.exists()) {
// Database does not exist so copy it from assets here
Log.i("Database", "Not Found");
} else {
Log.i("Database", "Found");
}
دوستم شرمنده دیر شد ولی خب خودمم چون نیاز داشتم گشتم و تست هم کردم جواب داد :
String dir = G.DIR_DATABASE + "/mashahir_database.sqlite";
File f = new File(dir);
if (f.exists()) {
Log.i("LOG", "YES");
} else {
Log.i("LOG", "NO");
AssetManager assetManager = G.context.getAssets();
InputStream inputStream;
try {
inputStream = assetManager.open("dir_database/mashahir_database.sqlite");
HelperIO.copyFile(inputStream, G.DIR_DATABASE + "/mashahir_database.sqlite");
}
catch (IOException e) {
e.printStackTrace();
}
}
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .