جستجو در انجمن

در حال نمایش نتایج برای برچسب های 'sqlite'.



تنظیمات بیشتر جستجو

  • جستجو بر اساس برچسب

    برچسب ها را با , از یکدیگر جدا نمایید.
  • جستجو بر اساس نویسنده

نوع محتوا


انجمن ها

  • انجمن اندروید ایران
    • اخبار و اعلانات
    • صندوق پيشنهادات و انتقادات
    • تازه‌های دنیای کامپیوتر و فناوری
    • قوانین انجمن تخصصی اندروید ایران
  • اندروید
    • ابزار های برنامه نویسی اندروید
    • شروع با اندروید
    • رفع مشکلات و سوالات
    • پروژه های اندروید
  • اندروید 5
    • آموزش اندروید 5
    • رفع مشکلات و سوالات اندروید 5
  • مباحث مرتبط با اندروید
    • ابزارها و سایتهای مفید
    • گرافیک موبایل
    • آموزش های ویدئویی
    • برنامه نویسی جاوا
  • تکنولوژی های اندروید
    • توسعه اندروید با #C
    • توسعه اندروید با Basic4Android
    • وب موبایل
  • متفرقه
    • اپلیکیش های ایرانی
    • برنامه نویسی
    • درخواست همکاری
    • مباحث متفرقه
    • مهارتهای فروش و بازاریابی
  • پشتیبانی محصولات مارکت
    • پرسش و پاسخ مرتبط با مارکت انجمن اندروید ایران
    • پشتیبانی مارکت پروژه های اندروید
    • پشتیبانی مارکت آموزش اندروید
    • پشتیبانی مارکت گرافیک موبایل

دسته ها

  • پروژه اندروید
    • سورس پروژه اندروید
    • کامپوننت های اندروید
    • کتابخانه های اندروید
  • آموزش اندروید
    • فیلم آموزشی کاربردی
    • مقالات آموزشی اندروید
  • گرافیک موبایل
    • قالب طراحی اپلیکیشن
  • اپلیکیشن های اندروید
    • کاربردی
    • کسب و کار
    • آموزش
    • کتاب‌ها و منابع
    • ویدئو و رسانه
    • بازی‌

تقویم ها

  • Community Calendar

20 نتیجه پیدا شد

  1. سلام.چطوری هر خطی که خواستم رو،بدون استفاده از اطلاعات ستون ها،حذف کنم؟
  2. باسلام خدمت همه دوستان و تبریک سال جدید من میخوام وقتی تو دیتابیسم یک گذینه(ستون) اضافه کردم بصورت اتوماتیک با همان نام یک دکمه تو صفحه برنامه ام اضافه بشه.البته منظورم تایگل باتن هست ازشما و اساتید حرفه ای درخواست کمک دارم باتشکر فراوان
  3. سلام من داخل برنامه یک editText دارم و میخوام کاربر با وارد کردن یک نام و سپس زدن یک دکمه یک ستون با همین نامی که کاربر وارد کرده به دیتابیسم اضافه بشه.... آیا راهی هست!؟ ممنون میشم دوستان راهنمایی کنند...
  4. سلام موقع اجرا برنامم برنامه خطا میده ک همچین دیتابیس و جدولی پیدا نکرده این درحالی هست که من هم دیتابیس و جدول رو ساختم و در پوشه assets قرار دادم
  5. سلام با برنامه DB Browser for SQLite دیتابیس رو ویرایش میکنم اما بعضی جول ها رو نمیتونم ویرایش انجام بدم. جدول های قسمت views که با پیشوند view شروع میشن...
  6. سلام چطوری یه عکس رو داخل دیتابیس ذخیره کنم؟
  7. سلام اساتید بنده در حال ساخت برنامه بکاپ از دیتای اپ (صرفا دیتا ، نه خود اپ) هستم ؛ برای اینکار یه لیست ویو ساختم که اپ های نصب شده در گوشی رو نشون میده و کاربر اپ مورد نظرشو انتخاب میکنه ، حالا برای بکاپ گرفتن من نیاز به پکیج نیم و نام دیتابیس دارم ؛ پکیج نیم رو با کد زیر میگیرم PackageInfo packageInfo = packlist.get(i); String packname = packageInfo.applicationInfo.loadLabel(getPackageManager()).toString(); حالا برای بدست آوردن آدرس دیتابیس من نیاز دارم نام دیتابیس رو بدونم ولی از اونجا که خود کاربر ، برنامه رو انتخاب میکنه نام دیتابیس ثابت نیست ، من چه کدی برنم که برنامم بتونه اسم دیتابیس رو خودش بفهمه ؟
  8. سلام خدمت همه دوستان من یک دیتابیس خارجی درست و در پروژه خود اضافه کردم. حالا میخوام اطلاعات مورد نظر را از دیتابیس بخونم و داخل لیست ویو سفارشی خودم قرار بدم. به عنوان مثال میخوام نام و آدرس را از دیتابیس بخونم و در لیست ویو سفارشی بصورت 2 تا تکست جداگانه اضافه کنم. ممنون میشم اگر بصورت گام به گام راهنماییم کنید. باتشکر از اعضاء محترم
  9. سلام. من تو برنامم از دیتا بیس استفاده کرد. در ورژن جدید برنامه ام در دیتابیس تغییراتی ایجاد کردم.اما و وقتی روی یک گوشی ک قبلا برنامه نصب بوده،حالا دوباره نصب میکنم دیتا بیس تغییری نکرده.و باید کلا برنامه رو اول از روی گوشی انیستال کنم و دوباره نصب کنم تا تغییرات دیتا بیسو ببینم. برای رفع این مشکل باید چ راه حلی بکار ببرم؟
  10. با سلام وقتی که با استفاده از cordova و plugin مربوط به sqlite یک database را create ‌کرده و داده های مورد نظر را در آن قرار می دهیم به چه صورت می توان به فایل ایجاد شده دسترسی داشت؟ به عبارت دیگر این فایل مربوط به database در کجا ذخیره می شود تا بتوان با استفاده از نرم افزارهایی مانند navicat آنرا مشاهده کرد؟ با تشکر
  11. دیتابیس

    سلام دوستان اگر لطف کنین کمکم کنید ممنون میشم من چند وقته شروع کردم برنامه نویسی رو الان میخوام یه کتاب بنویسم باrecyclerview ولی وقتی اجرا میکنم برناممو هر بار که بک میزنم و دوباره لیسته کتابامو چک میکنم دیتابیسم دوباره تکرار میشه
  12. سلام من می خواستم یک ستون به دیتابیسم اضافه کنم بعد پشیمون شدم اومدم پاکش کنم نمیدونم چی شد کل Table پاک شد امکانش هست بشه برش گردوند؟
  13. میخوام یه فرم رجیستر بنویسم در اندروید لازم به دونستن کدهای اعتبار سنحی فیلد شماره تلفن و ایمیل دارم...همچنین در زمان وارد کردن نام کاربری تکراری بودن یا نبودن این فیلد در بانک بررسی شود در جاوا از ایجکس میشه استفاده کرد؟
  14. خسته نباشید دوستان من میخوام یه مقداری رو بگیرم که داخل تیبل settings از دیتابیسم بصورت key ,value ذخیرش کردم key ش sound هست که از نوع ورکرکتر هست و میخوام اگه مقدارش 1 هست یه عکسی رو نشون بده اگرم مقدارش 0 هست یه عکس دیگه رو(همزمان اگه مقدار 1 بود صدا پخش بشه اگرم 0 بود پخش نشه) خلاصه مطلب اما به یه اروری خوردم حالا میخواستم ببینم ایراد از کجاست؟! این کلاس دیتابیس منیجرم public class DatabaseManager extends SQLiteOpenHelper { private Context context; private static String DB_PATH = "data/data/com.wordstutorial.hamidrezak.wordstutorials/databases/"; private static String DB_NAME = "words_db.db"; public static String DB_TABLE_WORDS ="words"; public static String BD_TABLE_PLAY="play"; public static String DB_TABLE_SETTINGS="settings"; private static int DB_VERSION = 2; private SQLiteDatabase dbase; public DatabaseManager(Context context) { super(context, DB_NAME, null, DB_VERSION); this.context = context; } public void createDatabase(){ boolean dbExist = checkDatabase(); if (dbExist) { Log.d("TAG", "Database already Exist"); } else { this.getReadableDatabase(); } try { copyDataBase(); } catch (IOException e) { throw new Error("Error copying database"); } } private boolean checkDatabase() { SQLiteDatabase checkDB = null; try { String myPath = DB_PATH + DB_NAME; checkDB=SQLiteDatabase.openDatabase(myPath , null, SQLiteDatabase.OPEN_READWRITE); } catch (SQLiteException e) { } if (checkDB != null) { checkDB.close(); } return checkDB != null ? true : false; } private void copyDataBase() throws IOException { InputStream myInput = context.getAssets().open(DB_NAME); String outFileName = DB_PATH + DB_NAME; OutputStream myOutput = new FileOutputStream(outFileName); byte[] buffer = new byte[1024]; int length; while ((length = myInput.read(buffer)) > 0) { myOutput.write(buffer, 0, length); } myOutput.flush(); myOutput.close(); myInput.close(); } public void openDataBase() throws SQLiteException { String myPath = DB_PATH + DB_NAME; dbase = SQLiteDatabase.openDatabase(myPath, null, SQLiteDatabase.OPEN_READWRITE); } public Cursor queryData(String query) { return dbase.rawQuery(query, null); } @Override public synchronized void close() { if (dbase != null) dbase.close(); super.close(); } @Override public void onCreate(SQLiteDatabase db) { ///DO NOTHING } @Override public void onUpgrade(SQLiteDatabase db, int oldV, int newV) { ///DO NOTHING } public int getSoundState(){ openDataBase(); Cursor cursor=queryData( " SELECT * FROM " + DB_TABLE_SETTINGS + " WHERE key='sound' "); cursor.moveToFirst(); return Integer.parseInt(cursor.getString(2)); } public boolean setSoundState(int state){ openDataBase(); ContentValues contentValues=new ContentValues(); contentValues.put("sound",state); long result=dbase.update(DB_TABLE_SETTINGS,contentValues," key = ? " , new String[] {"sound"} ); if (result < 1){ return true; }else { return false; } } } همونطوری که میبینید متد های گتر و ستر رو برای وضعیت صدام مشخص کردم... اینم کلاسی که میخوام اطلاعاتو ویرایش کنم... public class WordActivity extends AppCompatActivity { private MediaPlayer mediaPlayer; DatabaseManager db; private SQLiteDatabase sqLiteDatabase; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_word); Intent intent = getIntent(); final int id = intent.getIntExtra("id", 0); String word = intent.getStringExtra("word"); String imageWord = intent.getStringExtra("image"); String soundWord = intent.getStringExtra("sound"); int resID = getResources().getIdentifier(imageWord, "mipmap", getPackageName()); int resImage = this.getResources().getIdentifier(soundWord, "raw", this.getPackageName()); ImageView imageBox = (ImageView) findViewById(R.id.image_word_activity); final ImageView imageSoundState = (ImageView) findViewById(R.id.sound_state); if (db.getSoundState()==1){ Picasso.with(this).load(R.drawable.sound_play).into(imageSoundState); }else { Picasso.with(this).load(R.drawable.sound_stop).into(imageSoundState); } imageSoundState.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { if (db.getSoundState()==1){ if (db.setSoundState(0)){ Picasso.with(WordActivity.this).load(R.drawable.sound_stop).into(imageSoundState); } }else { if (db.setSoundState(1)){ Picasso.with(WordActivity.this).load(R.drawable.sound_play).into(imageSoundState); } } } }); TextView textBox = (TextView) findViewById(R.id.text_word_activity); Picasso.with(this).load(resID).into(imageBox); mediaPlayer = MediaPlayer.create(this, resImage); mediaPlayer.start(); textBox.setText(word); } @Override protected void onPause() { super.onPause(); mediaPlayer.release(); } اینم ارور ها 01-09 17:59:26.831 27683-27683/? I/art: Not late-enabling -Xcheck:jni (already on) 01-09 17:59:26.831 27683-27683/? W/art: Unexpected CPU variant for X86 using defaults: x86 01-09 17:59:26.883 27683-27683/com.wordstutorial.hamidrezak.wordstutorials W/System: ClassLoader referenced unknown path: /data/app/com.wordstutorial.hamidrezak.wordstutorials-1/lib/x86 01-09 17:59:26.902 27683-27683/com.wordstutorial.hamidrezak.wordstutorials W/art: Before Android 4.1, method android.graphics.PorterDuffColorFilter android.support.graphics.drawable.VectorDrawableCompat.updateTintFilter(android.graphics.PorterDuffColorFilter, android.content.res.ColorStateList, android.graphics.PorterDuff$Mode) would have incorrectly overridden the package-private method in android.graphics.drawable.Drawable 01-09 17:59:27.099 27683-27711/com.wordstutorial.hamidrezak.wordstutorials I/OpenGLRenderer: Initialized EGL, version 1.4 01-09 17:59:27.099 27683-27711/com.wordstutorial.hamidrezak.wordstutorials D/OpenGLRenderer: Swap behavior 1 01-09 17:59:27.160 27683-27711/com.wordstutorial.hamidrezak.wordstutorials E/EGL_emulation: tid 27711: eglSurfaceAttrib(1146): error 0x3009 (EGL_BAD_MATCH) 01-09 17:59:27.160 27683-27711/com.wordstutorial.hamidrezak.wordstutorials W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x9d9648a0, error=EGL_BAD_MATCH 01-09 17:59:28.300 27683-27711/com.wordstutorial.hamidrezak.wordstutorials E/EGL_emulation: tid 27711: eglSurfaceAttrib(1146): error 0x3009 (EGL_BAD_MATCH) 01-09 17:59:28.301 27683-27711/com.wordstutorial.hamidrezak.wordstutorials W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x9d964a60, error=EGL_BAD_MATCH 01-09 17:59:30.948 27683-27683/com.wordstutorial.hamidrezak.wordstutorials E/SQLiteLog: (14) cannot open file at line 32456 of [bda77dda96] 01-09 17:59:30.948 27683-27683/com.wordstutorial.hamidrezak.wordstutorials E/SQLiteLog: (14) os_unix.c:32456: (2) open(//data/data/com.wordstutorial.hamidrezak.wordstutorials/databases/words_db.db) - 01-09 17:59:30.949 27683-27683/com.wordstutorial.hamidrezak.wordstutorials E/SQLiteDatabase: Failed to open database 'data/data/com.wordstutorial.hamidrezak.wordstutorials/databases/words_db.db'. android.database.sqlite.SQLiteCantOpenDatabaseException: unknown error (code 14): Could not open database at android.database.sqlite.SQLiteConnection.nativeOpen(Native Method) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:209) at android.database.sqlite.SQLiteConnection.open(SQLiteConnection.java:193) at android.database.sqlite.SQLiteConnectionPool.openConnectionLocked(SQLiteConnectionPool.java:463) at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:185) at android.database.sqlite.SQLiteConnectionPool.open(SQLiteConnectionPool.java:177) at android.database.sqlite.SQLiteDatabase.openInner(SQLiteDatabase.java:808) at android.database.sqlite.SQLiteDatabase.open(SQLiteDatabase.java:793) at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:696) at android.database.sqlite.SQLiteDatabase.openDatabase(SQLiteDatabase.java:671) at com.wordstutorial.hamidrezak.wordstutorials.DatabaseManager.checkDatabase(DatabaseManager.java:63) at com.wordstutorial.hamidrezak.wordstutorials.DatabaseManager.createDatabase(DatabaseManager.java:42) at com.wordstutorial.hamidrezak.wordstutorials.View.Activity.WordsActivity.loadDatabase(WordsActivity.java:41) at com.wordstutorial.hamidrezak.wordstutorials.View.Activity.WordsActivity.onCreate(WordsActivity.java:28) at android.app.Activity.performCreate(Activity.java:6662) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) 01-09 17:59:31.466 27683-27711/com.wordstutorial.hamidrezak.wordstutorials E/EGL_emulation: tid 27711: eglSurfaceAttrib(1146): error 0x3009 (EGL_BAD_MATCH) 01-09 17:59:31.466 27683-27711/com.wordstutorial.hamidrezak.wordstutorials W/OpenGLRenderer: Failed to set EGL_SWAP_BEHAVIOR on surface 0x9d90cf20, error=EGL_BAD_MATCH 01-09 17:59:32.089 27683-27683/com.wordstutorial.hamidrezak.wordstutorials D/AndroidRuntime: Shutting down VM 01-09 17:59:32.089 27683-27683/com.wordstutorial.hamidrezak.wordstutorials E/AndroidRuntime: FATAL EXCEPTION: main Process: com.wordstutorial.hamidrezak.wordstutorials, PID: 27683 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.wordstutorial.hamidrezak.wordstutorials/com.wordstutorial.hamidrezak.wordstutorials.View.Activity.WordActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.wordstutorial.hamidrezak.wordstutorials.DatabaseManager.getSoundState()' on a null object reference at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2646) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'int com.wordstutorial.hamidrezak.wordstutorials.DatabaseManager.getSoundState()' on a null object reference at com.wordstutorial.hamidrezak.wordstutorials.View.Activity.WordActivity.onCreate(WordActivity.java:43) at android.app.Activity.performCreate(Activity.java:6662) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1118) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2599) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2707) at android.app.ActivityThread.-wrap12(ActivityThread.java) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1460) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:154) at android.app.ActivityThread.main(ActivityThread.java:6077) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:865) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:755) ممنون میشم کمک کنید ببینم مشکل از کجاست؟!
  15. public boolean Update(Model_PersonalZekr model_personalZekr) { SQLiteDatabase db = this.getWritableDatabase(); ContentValues contentValues = new ContentValues(); contentValues.put(KEY_COUNTER, model_personalZekr.getCounter()); db.execSQL("update " + Tbl_Personal_Zekr + " set" + KEY_COUNTER + "='" + model_personalZekr.getCounter() + "'" + " where" + KEY_ID + "='" + model_personalZekr.getId() + "'"); return ; } دوستان من چند تا چیز رو نمی دونم اینکه چرا باید public boolean انتخاب کنم و دوم اینکه حالا باید return چی بدم بهش ؟ حالا که من از execSQL استفاده کردم اصلا درست هست ؟
  16. خسته نباشید و خدا قوت به همگی اقا من میخواهم اعداد از بزرگ به کوچیک از دتیابیس گرفته بشه اصطلاحا مرتب بشه باید چیکار کنم؟ الان نام و دیتا ها رو در لیست ویو درست کردم هرچی فک کردم برا یاین چیزی به دهنم نرسید
  17. سلام خسته نباشید من دیتابیسم اماده و داخلی هست دیتابیس رو با کدایی که پایین میبینید مقدارشو توی یک لیست hashmap ریختم و بصورت یک لیست ویو (با استفاده از یک simple adapter) اونو نشون دادم و بدون اشکال و مشکل اجرا میشه برای مثال کد زیر رو اینجا میبینید که بدرستی کار میکنه: این کدایین که توی کلاس database handler هم است که همون اپن هلپر رو ازش ارث بری کرده public List<HashMap<String , Object>> getWords() { Cursor cursor=db.rawQuery( "SELECT * FROM " + DB_TBL_WORDS_NAME,null); List<HashMap<String , Object>> words=new ArrayList<>(); while ( cursor.moveToNext() ) { HashMap<String , Object> temp=new HashMap<>(); temp.put("id", cursor.getString(0)); temp.put("word", cursor.getString(1)); temp.put("image",cursor.getString(2)); if (cursor.getString(3).equals("1")) { temp.put("see_flag",R.drawable.see); }else { temp.put("see_flag",R.drawable.not_see); } if (cursor.getString(4).equals("1")) { temp.put("fav_flag",R.drawable.is_favorite); }else { temp.put("fav_flag",R.drawable.not_favorite); } words.add(temp); } return words; } اینم کدایین که توی اون اکتیویتی که میخوام نمایش بدم : public class WordsActivity extends AppCompatActivity { private RecyclerView recyclerView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_words); setupRecyclerView(); getWordsFromDB(); } private void setupRecyclerView(){ recyclerView=(RecyclerView)findViewById(R.id.recycler_view); recyclerView.setLayoutManager(new GridLayoutManager(WordsActivity.this,2,LinearLayoutManager.VERTICAL,false)); } private void getWordsFromDB(){ DatabaseHandler databaseHandler=new DatabaseHandler(this); List<Word> words=databaseHandler.getWords(); TextAdapter wordsAdapter=new TextAdapter(this,words); recyclerView.setAdapter(wordsAdapter); } اما مشکل جایی هست که من میخوام اینو توی یک ریسایکلر ویو و مشخصا یه آداپتر کامل بریزم !!! وقتی این کد زیر رو میزارم جای اون قبلیا و روش آداپتر ست میکنم و ریسایکلر ویوم رو،در واقع میگن این query که از دیتابیس میگیرم اون تیبل رو نمیتونه اصلا ایجاد کنه !!! اینم کدش public List<Word> getWords(){ List<Word> words =new ArrayList<>(); Cursor cursor=db.rawQuery("SELECT * FROM " +DB_TBL_WORDS_NAME, null); cursor.moveToFirst(); if (cursor.getCount()>0){ while (!cursor.isAfterLast()){ Word word=new Word(); word.setId(cursor.getInt(0)); word.setTitle(cursor.getString(1)); word.setImageview(cursor.getString(2)); words.add(word); cursor.moveToNext(); } } cursor.close(); db.close(); return words; } حاالا راه حل چیه باید چیکار کنم؟چرا اینا روی لیست ویو و سیمپل اداپترم میتونم ست کنم اما روی یک ریسایکلر ویو کامل نمیشه و دیتابیس و مشخصا اون تیبل words اصلا ساخته نمیشه؟!
  18. با سلام من یک کاردویو دارم شامل یک imageview و یک textview (برای پرچم و نام کشور) که برای نمایش عکس مشکل دارم. من فعلا دوفایل عکس رو در assets قرار دادم و اسم عکس رو هم در دیتابیس نوشتم توی کلاس آداپتر این کدها رو نوشتم: public void onBindViewHolder(ViewHolder holder, int position) { Database database=new Database(context); //from database holder.txt_countryname.setText(items.get(position).getCountry_Name()); //holder.img_flags.setImageBitmap(database.getBitmapFromAsset(context,items.get(position).getFlag())); holder.img_flags.setImageBitmap(database.getBitmapFromAsset(context,"iran.png")); holder.img_flags.setImageBitmap(database.getBitmapFromAsset(context,"argentina.png")); و در کلاس فرگمنت که قراره عکس در اون نمایش داده بشه: public void loadDatabase(){ Database database=new Database(getContext()); database.CreateDatabase(); database.openDatabase(); Cursor cursor=database.QueryData("SELECT * FROM Country WHERE Ghareh='آفریقا'"); if (cursor!=null && cursor.moveToFirst()) { do { Structure structure = new Structure(); structure.setCountry_Name(cursor.getString(1)); structure.setFlag(cursor.getString(4)); arrayList.add(structure); } while (cursor.moveToNext()); } } ولی موقع اجرا در همه ایمیج ویو ها (برای همه کشور ها) یک پرچم نمایش داده میشه! راهنمایی کنید ممنون میشم
  19. SQLite یک پایگاه داده منبع باز است که برای ذخیره فایل های متنی در برنامه نویسی موبایل مورد استفاده قرار می گیرد.این پایگاه داده برای ایجاد پایگاه داده های برنامه های موبایل اندروید مورد استفاده قرار می گیرد.SQLite از تمام ویژگی های پایگاه داده های دیگر پشتیبانی می کندو برای ایجاد ارتباط میان هر پایگاه داده ای دیگری مثل JDBC,ODBC نیاز به هیچ جز اضافه ای ندارد. پایگاه داده - بسته اصلی این بسته اصلی android.database.sqllite می باشد که شامل کلاس های مختلف برای مدیرتی پایگاه داده است. ساخت پایگاه داده برای ساخت پایگاه داده های برنامه های اندروید فقط نیاز به فراخوانی نام پایگاه داده با استفاده از متد OpenOrCreateDatabase و یک پارامتر است.همانطور که نمونه آن را در کد زیر می بینید SQLiteDatabase mydatabase = openOrCreateDatabase("your database name",MODE_PRIVATE,null); توابع و متد های دیگری در پایگاه داده SQLLite وجود دارد که دستورهای دیگری را اجرا می کنند: openDatabase(String path, SQLiteDatabase.CursorFactory factory, int flags, DatabaseErrorHandler errorHandler) این متد پایگاه داده های موجود دیگر را با مقدار داده ای flag باز می کند.حالت flag شامل دو حالت OPEN_READWRITE و OPEN_READONLY می باشد. openDatabase(String path, SQLiteDatabase.CursorFactory factory, int flags) این دستور، مانند دستور بالا پایگاه داده را باز می کند با این تفاوت که هیچ کنترلی روی بررسی اشتباهات و مشکلات موجود در پایگاه داده ندارد. openOrCreateDatabase(String path, SQLiteDatabase.CursorFactory factory) این دستور نه تنها پایگاه داد را باز می کند بله در صورتیکه پایگاه داده اگر موجود نباشد آن را می سازد.این دستور مشابه دستور بالا عمل میکند. openOrCreateDatabase(File file, SQLiteDatabase.CursorFactory factory) این دستور نیز مشابه دستور بالا است با این تفاوت که بجای رشته، فایل object را بعنوان پارامتر ورودی دریافت می کند. ()file.getPath درج اطلاعات در دیتابیس با استفاده از دستور execSQL که در پایگاه داده SQLite وجود دارد می توان دستور insert را نوشت. mydatabase.execSQL("CREATE TABLE IF NOT EXISTS TutorialsPoint(Username VARCHAR,Password VARCHAR);"); mydatabase.execSQL("INSERT INTO TutorialsPoint VALUES('admin','admin');"); دستور بالا اطلاعات را درون جدول درج میکند، دستور دیگری که مشابه دستور بالا عمل می کند دستور زیر است execSQL(String sql, Object[] bindArgs) این دستور علاوه بر درج اطلاعات، اطلاعت قبلی موجو در دیتابیس را ویرایش یا جایگزین می کند. دریافت اطلاعات جداول برای دریافت اطلاعات یک جدول از یک شی کلاس Cursor استفاده می کنیم.برای اینکار از متد rawQuery استفاده می کنیم Cursor resultSet = mydatbase.rawQuery("Select * from TutorialsPoint",null); resultSet.moveToFirst(); String username = resultSet.getString(1); String password = resultSet.getString(2); کد بالا با استفاده از دستور MoveToFirst تابع را به ابتدای سطر جدول می برد و از انجا شروع به خواندن اطلاعات و ذخیره آنها در دو متغیر username و password ذخیره می کند. دستورات دیگری که ایمشابه کد بالا عمل می کنند عبارتند از: getColumnCount(): مجموع تعداد ستون های جدول را بازمیگرداند. getColumnIndex(String columnName): یک عدد شاخص از یک ستون با نام آن ستون را باز می گرداند. getColumnName(int columnIndex): یک ستون با index آن را باز می گرداند. getColumnNames(): آرایه ای از نام های تمام ستون های جدول را باز میگرداند. getCount(): تعداد کل ردیف های را که اشاره گر در آنها قرار دارد باز می گرداند. getPosition(): موقعیت اشاره گر را در جدول باز می گرداند. isClosed(): اگر اشاره گر به انتها رسیده باشد مقدار true و اگر غیر این باشد مقدار false را باز می گرداند. مدیریت عملیات پایگاه داده برای مدیریت تمام عملیات درون پایگاه داده یک کلاس کمکی به نام SQLLiteOpenerHelper وجود دارد که تمام عملیات درون ایگاه داده را بطور خودکار ایجاد و به روزرسانی می کند.کد آن در زیر آمده است: public class DBHelper extends SQLiteOpenHelper { public DBHelper(){ super(context,DATABASE_NAME,null,1); } public void onCreate(SQLiteDatabase db) {} public void onUpgrade(SQLiteDatabase database, int oldVersion, int newVersion) {} } در مقاله بعدی یک نمونه مثال که شامل ایجاد جدول،درج و اصلاح اطلاعات و خواندن آنها از درون جدول است، را باهم مرور میکنیم.با سروش پرداز همراه باشید.
  20. میشه واسه برای برنامه دو تا دکمه یکی برای back up و اون یکی برای restore ایجاد کنیم طوری که اگه روی back up کلیک شد، از دیتابیس اپلیکیشن back up گرفته بشه و اگه روی دکمه restore کلیک شد دیتابیسو بازیابی کنه؟