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

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



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

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

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

نوع محتوا


برنامه نویسی اندروید | آموزش برنامه نویسی اندروید | آموزش اندروید

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

دسته ها

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

تقویم ها

  • Community Calendar

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

  1. سلام و درود دوستان بنده برنامه ای مطابق شکل ساخته ام الان می خوام یه ایتم دیگه بهش اضافه کنم یه ایتم شمارنده یعنی با ارسال هر لغت صحیح به شمارنده یک عدد اضافه شود و بیشترین رکورد کاربر ذخیره شود و هر بار در کنار شمارنده قرار می گیرد و با شکسته شدن رکورد توسط کاربر رکورد جدید قرار بگیرد. ممنون میشوم اگر کسی بلده و یا قطعه کدی داره
  2. سلام وقت بخیر ی برنامه رو در نظر بگیرید مثلا 100نفر داخل دیتابیس انلاین ثبت نام کردن میخام هر دفعه که دکمه رو میزنم اسم یک نفر بگیر و داخل ی چیزی که نمیدونم و از شما کمک میخام ذخیره کنه و اگه نت نبود بازم نمایش بده و بعد وقتی دوباره دکمه زده شد اسم بعدی رو هم نمایش بده بدون اینکه قبلی از بین بره و........ از دیتابیس sqllite نمیخام استفاده کنم راهی هست؟ ممنونم
  3. خسته نباشید دوستان من میخوام یه مقداری رو بگیرم که داخل تیبل 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) ممنون میشم کمک کنید ببینم مشکل از کجاست؟!
  4. سلام خسته نباشید به یه مشکلی خوردم تو فراخونی دیتابیس،نکته عجیبش اینه که من کدای دیتابیس رو دستکاری نکردم فقط از دیتابیس لوکاس استفاده میکنم یه سری تغییرات تو ستون های هر جدول تو دیتابیسم دادم و جالب تر از اون اینکه حالا که کدارو به حالت نرمالم برمیگردونم بازم ارور میده و میگه دیتابیس کپی نمیشه و نمیتونه باز بشه !!! این لیست کلاس دیتابیسم: 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) { e.printStackTrace(); throw new Error("Error copying database"); } } private boolean checkDatabase() { SQLiteDatabase checkDB = null; try { String myPath = DB_PATH + DB_NAME; checkDB.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 void onCreate(SQLiteDatabase db) { ///DO NOTHING } @Override public void onUpgrade(SQLiteDatabase db, int oldV, int newV) { ///DO NOTHING } @Override public synchronized void close() { if (dbase != null) dbase.close(); super.close(); } کلاس پست هایی که میخوام بگیرم از دیتابیس public class WordsActivity extends AppCompatActivity { private List<Word> words; DatabaseManager db; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_words); loadDatabase(); TextAdapter wordsAdapter = new TextAdapter(this,words); RecyclerView recyclerView = (RecyclerView) findViewById(R.id.recycler_view); recyclerView.setLayoutManager(new GridLayoutManager(WordsActivity.this, 2, LinearLayoutManager.VERTICAL, false)); recyclerView.setAdapter(wordsAdapter); } public void loadDatabase() { db=new DatabaseManager(WordsActivity.this); db.createDatabase(); db.openDataBase(); words=new ArrayList<>(); Cursor cursor = db.queryData(" SELECT * FROM " + DatabaseManager.DB_TABLE_WORDS); if (cursor != null) { if (cursor.moveToFirst()) { do { Word word = new Word(); word.setId(cursor.getInt(0)); word.setTitle(cursor.getString(1)); word.setImageview(cursor.getString(2)); word.setSound(cursor.getString(3)); words.add(word); } while (cursor.moveToNext()); } } db.close(); } } اینم کلاس اداپترم public class TextAdapter extends RecyclerView.Adapter<TextAdapter.TestViewHolder> { private Context context; private List<Word> words; public TextAdapter(Context context, List<Word> words) { this.context = context; this.words = words; } @Override public TestViewHolder onCreateViewHolder(ViewGroup parent, int viewType) { View view = LayoutInflater.from(context).inflate(R.layout.tutorial_boxs_layout, parent, false); return new TestViewHolder(view); } @Override public void onBindViewHolder(final TestViewHolder holder, int position) { final Word word=words.get(position); holder.txtTitle.setText(word.getTitle()); int resID = context.getResources().getIdentifier(word.getImageview(), "mipmap", context.getPackageName()); holder.imageWord.setImageResource(resID); holder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Intent intent=new Intent(context, WordActivity.class); intent.putExtra("id",word.getId()); intent.putExtra("word",word.getTitle()); intent.putExtra("image",word.getImageview()); intent.putExtra("sound",word.getSound()); context.startActivity(intent); } }); } @Override public int getItemCount() { return words.size(); } public class TestViewHolder extends RecyclerView.ViewHolder { private TextView txtTitle; private ImageView imageWord; public TestViewHolder(View itemView) { super(itemView); txtTitle = (TextView) itemView.findViewById(R.id.box_title); imageWord = (ImageView) itemView.findViewById(R.id.box_image); } } } اینم ارور هایی که میده --------- beginning of crash 01-09 13:30:00.085 4969-4969/com.wordstutorial.hamidrezak.wordstutorials E/AndroidRuntime: FATAL EXCEPTION: main Process: com.wordstutorial.hamidrezak.wordstutorials, PID: 4969 java.lang.Error: Error copying database at com.wordstutorial.hamidrezak.wordstutorials.DatabaseManager.createDatabase(DatabaseManager.java:57) 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) مشکل از کجاست؟؟
  5. سلام خسته نباشید یه اپ پرسش و پاسخ داشتم،توی یه اکتیوی سوالات مختلفی رو میخوام نشون بدم،در واقع سوالم یه فایل صوتیه...حالا وقتی سوالم اجرا میشه و گزینه هاش میان فایل صوتیم اجرا میشه اینجاش درسته،اما وقتی که مثلا جواب سوال رو میدم، و میره سوال بعدی بازم صدای بعدی هم پخش میشه بدون اینکه صدای قبل متوقف بشه حالا از اونجایی ک توی یک اکتیویتی هست باید دستور stop برای مدیا پلیر رو کجا فراخونی کنم که مثلا از این سوال میره به سوال بعدی،فایل صوتی مربوط به همون سوال پخش بشه و فایل های صوتی قبلی پخش نشن؟
  6. باسلام خدمت دوستان عزیز من میخوام یه برنامه خیلی خیلی ساده بسازم که وقتی من یک مطلبی رو توی دیتابیس برنامم گذاشتم ، کاربر با متصل شدن به اینترنت بتونه اون رو ببینه . اما بلد نیستم که چطور یک دیتابیس آنلاین بسازم و به سرور متصلش کنم و بیارمش توی اندروید استودیو خواهشا کامل جواب بدید من در سطح متوسط رو به پایین هستم
  7. 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 استفاده کردم اصلا درست هست ؟
  8. سلام خسته نباشید توی دیتابیسم چندتا ستون دارم به اسم کلمه،عکس و صدا ! کلمع و عکس رو توی اپ اوردم ولی مشکلم با صدا هستش،چجوری اینو وارد اپ کنم؟ آیا بصورت Blob اونو بزارم تو دیتابیس و لودش کنم یا اینکه تو دیتابیس فقط اسمشو بزارم؟ و نکته دیگه اینکه توی جاوا واسه اوردنش از چه کلاسی استفاده کنم؟(مثلا واسه عکس از بیت مپ استفاده کردم) ممنون میشم راهنماییم کنید
  9. سلام خسته نباشید من دیتابیسم اماده و داخلی هست دیتابیس رو با کدایی که پایین میبینید مقدارشو توی یک لیست 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 اصلا ساخته نمیشه؟!
  10. برای اینکار دو روش وجود دارد: 1- اینکه عکس را در دیتابیس ذخیره وسپس در برنامه نمایش دهیم. 2-اینکه نام عکس را در دیتابیس ذخیره و خود تصاویر را در پوشه ریسورس برنامه مثلا در drawable ذخیره و سپس با توجه به نام آن تصویر را در ایمیج ویو لود کنیم. ما روش دوم را در این اموزش بررسی خواهیم کرد. به کد زیر توجه کنید: ImageView img; Database myDbHelper; SQLiteDatabase db; img = (ImageView) findViewById(R.id.imageView1); db = myDbHelper.getWritableDatabase(); String s = getIntent().getStringExtra("id"); Cursor c = db.rawQuery("select * from student where stu_id = " + id, null); if (c.moveToNext()) { img_name = c.getString(c.getColumnIndex("img")); Log.d("img", img_name); String uri = "drawable/" + img_name; // int imageResource = R.drawable.icon; int imageResource = getResources().getIdentifier(uri, null, getPackageName()); Drawable image = getResources().getDrawable(imageResource); img.setImageDrawable(image); } همانطور که مشخص است بعد از زدن یک کوئری در دیتابیس نام تصویر مربوط به دانشجوی مورد نظر را گرفته و سپس id ایمیج مورد نظر را در ریسورس های برنامه به دست آورده و آن را در ایمیج ویو نشان می دهد. امیدوارم این آموزش مقبول افتد.