hamidreza.kh

توسعه دهنده اندروید
  • تعداد ارسال ها

    48
  • تاریخ عضویت

  • آخرین بازدید

اعتبار در انجمن

3 Neutral

درباره hamidreza.kh

  • درجه
    توسعه دهنده فعال
  1. چشم الان میفرستم براتون تو خصوصی
  2. آها من فک کردم مقداری که تغییر کرده رو نشون میده ، خب پس اینا اوکین پس چرا اعمال نمیشه؟! بنظرتون مشکل از کجاست؟
  3. ظهر شماهم بخیر آقای خسروآبادی این دیتابیس منه
  4. یه مورد عجیبی ک تازه بهش برخوردم اینه که private void setAnswerState(int postId) { dbHelper = new DatabaseManager( this, DatabaseManager.DB_NAME); try { dbHelper.importIfNotExist(); } catch (IOException e) { e.printStackTrace(); } dbHelper.setAnswerState(postId,1); } من اینجا مقدار 1 رو هر مقداری بدم بازم همون متدم توی مدیریت دیتابیسم یعنی این متد پایین مقدار 1 برمیگردونه !!!! یعنی من اینجا جای 1 4 و 5 هم تست کردم اما بازم متن پایین همش به عنوان rowAffected مقدار 1 رو برمیگردونه!!! بظرتون این طبیعی هستش؟! public void setAnswerState(int postId, int answerState){ SQLiteDatabase sqLiteDatabase=this.getWritableDatabase(); ContentValues contentValues=new ContentValues(); contentValues.put("answer_state" , answerState); int rowAffected=sqLiteDatabase.update(DB_TABLE_QUIZ,contentValues,"id = ?" ,new String[]{String.valueOf(postId)}); Log.i(TAG, "setAnswerState: rowAffected=> " +rowAffected); sqLiteDatabase.close(); } اینم مدرکش 04-19 07:18:47.487 2330-2330/com.becomealegend.hamidrezakh I/ContentValues: setAnswerState: rowAffected=> 1 04-19 07:18:47.487 2330-2330/com.becomealegend.hamidrezakh I/onCreate: setAnswerStateId: id=>1 04-19 07:18:54.228 2330-2330/com.becomealegend.hamidrezakh I/ContentValues: setAnswerState: rowAffected=> 1 04-19 07:18:54.228 2330-2330/com.becomealegend.hamidrezakh I/onCreate: setAnswerStateId: id=>10 04-19 07:18:58.128 2330-2330/com.becomealegend.hamidrezakh I/ContentValues: setAnswerState: rowAffected=> 1 04-19 07:18:58.128 2330-2330/com.becomealegend.hamidrezakh I/onCreate: setAnswerStateId: id=>28
  5. پی نویس پست بالام 04-18 13:32:01.161 20635-20635/com.becomealegend.hamidrezakh I/ContentValues: setAnswerState: rowAffected=> 1 04-18 13:32:01.161 20635-20635/com.becomealegend.hamidrezakh I/onCreate: setAnswerStateId: id=>1 04-18 13:32:03.200 20635-20635/com.becomealegend.hamidrezakh I/ContentValues: setAnswerState: rowAffected=> 1 04-18 13:32:03.200 20635-20635/com.becomealegend.hamidrezakh I/onCreate: setAnswerStateId: id=>19 04-18 13:32:04.841 20635-20635/com.becomealegend.hamidrezakh I/ContentValues: setAnswerState: rowAffected=> 1 04-18 13:32:04.843 20635-20635/com.becomealegend.hamidrezakh I/onCreate: setAnswerStateId: id=>8 04-18 13:32:07.194 20635-20635/com.becomealegend.hamidrezakh I/ContentValues: setAnswerState: rowAffected=> 1 04-18 13:32:07.194 20635-20635/com.becomealegend.hamidrezakh I/onCreate: setAnswerStateId: id=>26 04-18 13:32:12.724 20635-20635/com.becomealegend.hamidrezakh I/ContentValues: setAnswerState: rowAffected=> 1 04-18 13:32:12.725 20635-20635/com.becomealegend.hamidrezakh I/onCreate: setAnswerStateId: id=>33
  6. این لاگی ک گرفتم که نشون میده آیدی هایی که دارم پاس میدم درست هستش و مشکلی نداره دیگه درسته؟! 04-18 13:19:55.211 9774-9774/com.becomealegend.hamidrezakh I/onCreate: setAnswerStateId: id=>1 04-18 13:19:58.129 9774-9774/com.becomealegend.hamidrezakh I/onCreate: setAnswerStateId: id=>2 04-18 13:20:00.409 9774-9774/com.becomealegend.hamidrezakh I/onCreate: setAnswerStateId: id=>4 04-18 13:20:02.393 9774-9774/com.becomealegend.hamidrezakh I/onCreate: setAnswerStateId: id=>6 04-18 13:20:04.888 9774-9774/com.becomealegend.hamidrezakh I/onCreate: setAnswerStateId: id=>31 04-18 13:20:07.089 9774-9774/com.becomealegend.hamidrezakh I/onCreate: setAnswerStateId: id=>20 لیست کلی که هم که میگیرم از دیتابیس (یعنی بدون اینکه بخوام شرط بزارم که seasson flag برابر با یک باشه) وقتی میگیرم بازم تفاوتی نداره ! حالا نمیدونم با این لاگ بالا نشون میده که آیدی رو درست بهش پاس میدم،و با اون لاگی که توی دیتابیس منیجرم هستش و مقدار rowAffected اونم نشون میده واقعا که مقدار answer_state به 1 تغییر میکنه برای هر آیدی اما واقعا چرا این تغییر موندگار نیست؟! یا یه جای کار میلنگه؟ آیا احتمال این وجود داره که مقدار answer_state از 0 تبدیل به 1 بشه اما نمونه و بعد از اجرای دوباره اپ دوباره همون مقدار 0 بشه؟!
  7. ممنون بابت پاسخگویی دوباره تون نخیر من answer_state رو میخوام برابر یک بزارم که هر وقت پستی دیده شد مثلا یه اطلاعی کاربر داشته باشه اما اونجا که مقدار seasson_flag =1 رو میگیرم در واقع این بحثش جداست میخوام پستایی که seasson_flag شون برابر با یک هست رو توی این کوئری بگیرم ک خب خود همین پستا (اینایی که سیزن فلگ1 دارن هم میتونن مقدار answer_state 1 داشته باشن !!!) در واقع دارم اینو quiz.setAnswerState(cursor.getInt(9)); اینجا ست میکنم،خب ؟ بعد توی آداپترم توی اون پست بالا دارم اونو میگیرم با متد getAnswerState که متاسفانه تغییر نمیکنه ! بنظر خودم هرچی چک کردم کوئریم مشکلی نداره هرچی هست اون آیدی هست که توی اکتیویتی هدف بهش میدم
  8. سلام خطایی نمیده ، اما ظاهرا اعمال هم نمیشه ، با این دستور میگیرم پست هام رو public List<Quiz> getQuizes() { List<Quiz> quizes = new ArrayList<>(); SQLiteDatabase sqLiteDatabase = this.getReadableDatabase(); Cursor cursor = sqLiteDatabase.rawQuery("SELECT * FROM " + DB_TABLE_QUIZ + " WHERE seasson_flag = 1 ", null); cursor.moveToFirst(); if (cursor.getCount() > 0) { while (!cursor.isAfterLast()) { Quiz quiz = new Quiz(); quiz.setId(cursor.getInt(0)); quiz.setQuestion(cursor.getString(1)); quiz.setOptA(cursor.getString(2)); quiz.setOptB(cursor.getString(3)); quiz.setOptC(cursor.getString(4)); quiz.setOptD(cursor.getString(5)); quiz.setAnswer(cursor.getInt(6)); quiz.setIcType(cursor.getString(7)); quiz.setAnswerState(cursor.getInt(9)); quizes.add(quiz); cursor.moveToNext(); } } cursor.close(); sqLiteDatabase.close(); return quizes; } و با این تیکه کد میخوام که اعمال شدنش رو توی بکگراند آیتم هام توی ریسایکلر ویوم مشاهده کنم،و وقتی که میگیرم اون رو از دیتا مدلم ، همیشه مقدار صفر رو برمیگردونه و در واقع بکگراند آیتم ها در ریسایکلر ویو همیشه قرمز هست ! درحالی که اگه تغییر کنه مقدارش باید نارنجی بشه ! if (quiz.getAnswerState()==0){ holder.itemView.setBackgroundColor(ContextCompat.getColor(context,android.R.color.holo_red_light)); }else { holder.itemView.setBackgroundColor(ContextCompat.getColor(context,android.R.color.holo_orange_dark)); } در واقع اینجا اصلا اعمال نمیشه !
  9. سلام دوستان یه سری سوال دارم میخوام اگه کاربر میبینه میخوام مقدار ستون answer_state ام تو دیتابیس از 0 تبدیل بشه به 1 کوئری هم زدم به این شکل public void setAnswerState(int postId, int answerState){ SQLiteDatabase sqLiteDatabase=this.getWritableDatabase(); ContentValues contentValues=new ContentValues(); contentValues.put("answer_state" , answerState); int rowAffected=sqLiteDatabase.update(DB_TABLE_QUIZ,contentValues,"id = ?" ,new String[]{String.valueOf(postId)}); Log.i(TAG, "setAnswerState: rowAffected=> " +rowAffected); sqLiteDatabase.close(); } توی اکتیویتی سوال هم اونو گرفتم private void setAnswerState(int postId) { dbHelper = new DatabaseManager( this, DatabaseManager.DB_NAME); try { dbHelper.importIfNotExist(); } catch (IOException e) { e.printStackTrace(); } dbHelper.setAnswerState(postId, 1); } و توی متد آنکریت هم تعریفش کردم و مقدار آیدی هر سوال رو بهش دادم(با اینتنت) : setAnswerState(qid); و در نهایت وقتی وارد اکتیویتی سوالم میشم هم لاگ رو دارم که همونطوری که میبینید مقدار لاگ هم تغییر میکنه ظاهرا !!! 04-17 06:57:14.846 6646-6646/com.becomealegend.hamidrezakh I/ContentValues: setAnswerState: rowAffected=> 1 04-17 06:57:20.500 6646-6646/com.becomealegend.hamidrezakh I/ContentValues: setAnswerState: rowAffected=> 1 اما چرا اعمال نمیشه روی دیتابیس و توی دیتا مدلم؟!!!
  10. ممنونم آقا مشکلم حل شد ، الان من آی دی سوالم رو میگیرم و با استفاده از اینتنت به اکتیویتی سوالم میارم و وقتی ک مثلا جواب صحیح بودش ، اون آیدی رو ++ میکنم و به سوال بعدی میره ، مشکلم دقیقا همین بود که متغییر هارو در جای نا مناسب معرفی و مقدار دهی میکردم،سپاسگذارم دوستان ک کمکم کردند
  11. سلام ممنونم بابت پاسخگوییتون بله من یه لیستی دارم از سوال ها خب؟ بعد ریسایکلر ویوم و اون لیست با توجه به تعداد سوال هام(یا بهتر بگم آیتم هام) میاد و بقول شما سوال هارو میگیره و بله لیستم رو دارم ببینید با روشی ک شما میگید دقیقا کار کردم و میدونم منظورتون چیه ، با این روشی ک میگید برای من مثن اگه کاربر جواب سوال رو درست بده آره میره به سوال بعدی اما مشکلی که بود این بود که توی ریسایکلر ویوم روی هرکدوم از آیتمام کلیک ک میکردم ک بره اکتیویتی بعدی و نمایش بده سوال رو در واقع دوباره از سوال 1 شروع میکرد به اومدن !!! در حالی که من میخوام مثلا اگه روی آیتم 17 کلیک شد دقیقا سوال 17 رو برام نشون بده توی اکتیویتی هدفش ! خب حالا اینجارو داشته باشید من حالا اومدم با استفاده از همون اینتنت دقیقا هر سوالم رو توی هر آیتم اد کردم یعنی الان اگه روی آیتم مثلا 10هم توی ریسایکلر ویوم کلیک کنم ، دقیقا سوال با آیدی دهم رو برام نمایش میده و این دقیقا همون چیزیه که میخوام !! فقط یه مشکل که دارم اینه که میخوام بعد اینکه به سوال جواب صحیح دادم بره و از مثلا سوال دهم بره به سوال یازدهم و این مورد رو نمیدونم چجوری پیاده سازی کنم ! qid رو گذاشتم(آیدی هر سوال) ک اگه جواب درست بود بره سوال بعدی اما با این کاری که کردم(با اینتنت دیتا هارو اوردم و توی اکتیویتی بعدی روی ویو ها ست کردم) انگار کار نمیکنه و به سوال بعدی نمیره !!!
  12. پی نویس:بهله این کاری ک شما میگید رو باید بکنم که مثن کاربر اگه ی بار جواب سوال رو داد مثل مقدار اون عدده 1 بشه و دیگه هرگا خواست وارد اکتیویتی مثلا سوال اول بشه درجا همون پاپ آپ براش نمایش در بیاد و بگه که شما جواب دادید قبلا به این سوال مثلا ، ازین لحاظ بهله
  13. آقای سرسیفی ممنون بابت رسیدگی تون سپاسگذارم... اما متوجه منظورتون نشدم ! ببینید من سوالات رو الان گرفتم تو اکتیویتیم ، خب؟ حالا حتی میتونم بفهمم که کاربر جواب درست داده یا نه یعنی فاکشن getAnswer رو ساختم که از باتن هام سوال رو میگیره مشکلی ندارم بابت این ، مشکل سر اینه که برفرض مثال کاربر جواب سوال اول رو داد ، خب میخوام حالا بره به ایتم بعدی و دقیقا بجای این باتن ها سوال بعدی و گزینه های بعدی رو بیاره کلا ! که کاربر بتونه به اینا جواب بده مشکل من دقیقا همینه وگرنه الان مثلا طرف میتونه از وارد ایتم اول بشه و جواب بده سوالش رو(بر فرض مثال مقدار تکست هم تغییر میکنه) بعد از اکتیویتی بیاد بیرون و با کلیک روی آیتم دوم وارد اون بشه و به سوال دو جواب بده !! الان دقیقا کاری ک من میخوام بکنم اینه که کاربر بعد از جواب دادن به سوال اول مثلا اگر صحیح بود گزینه انتخابیش،یه صفحه پاپ آپ نشون بده در حد نصف صفحه و بگه جواب درست بود ، بعد با کلیک رو باتن next بره به سوال بعدی این دقیقا کاریه ک من میخوام انجام بدم... پیشاپیش ممنونم
  14. خسته نباشید دوستان من چندتا آیتم دارم که میبینید در این عکس کلیک کنید و هرکدام از آیتم هام همونطور ک میبینید دیتا هایی که میخواستم و مختص به خودشون بود رو گرفتن(با استفاده از اینتنت) مورد اول(کلیک کنید) مورد دوم(کلیک کنید) حالا میخوام اگر کاربر جواب صحیح رو داد اون بالا تکستم از 0 بشه 1 و همینطور بره به سوال بعدی ! مورد اول رو پیاده سازی کردم و تکستم 1 میشه اما چجوری کاری کنم که بره به سوال بعدی؟! پی نویس : هرکدوم از سوالاتم(26 سوال هستن) بر اساس id که دارن آیتم ساختند(26 تا آیتم دارم که در عکس اول هم میبینید) و با اینتنت باقی دیتای هر سوال رو در اکتیویتی بعدیم ست کردم(با کلیک روی آیتم ها میره به اون اکتیویتی بعدی) روی هر آیتم خودش و میخوام بین اینا در واقع جابجا بشم...
  15. سلام خسته نباشید یه اپ پرسش و پاسخ دارم ، یه لیست از آیتم ها دارم (20 تا) و میخوام روشون ک کلیک شد بره به اکتیویتی بعدی و سوال مختص به اون آیتم رو برام نمایش بده{مثن روی آیتم 5 ام کلیک ک کردم میخوام که سوالی رو برام نشون بده که مختص همینه(مثلا ای دیش برابر 5 باشه)} بعد یه گزینه میخوام که کلیک کنم بره سوال بعدی(یا بهتر بگم اکتیویتی بعدی) در حال حاضر با این آموزش http://www.parallelcodes.com/android-game-tutorial/ ک جلو میرم اون چیزی نیست که من میخوام الان رو هر آیتم کلیک کنم از سوال یک شروع میکنه و میاد در حالی که من نمیخوام اینجوری باشه اگه منظورمو نگرفتید بگید تا بیشتر توضیح بدم،ممنون میشم راهنمایی کنید