آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

مشکل در RecyclerView

Shadow  9 سال پیش  9 سال پیش
0 0

من اطلاعات رو از سرور می گیرم و داخل دیتابیس توی گوشی ذخیره می کنم هنگامی که اکتیویتی مورد نظر رو باز می کنم و اطلاعات رو با ریسایکلرویو نمایش می دم وقتی روی هر ایتم کلیک شد و مقدار فیلد داخل دیتابیس آپدیت می شه که این آیتم قبلا نمایش داده شده و رنگش تغییر می کنه ولی وقتی به اینترنت وصل هستم این تغییر رنگ انجام نمیشه ولی وقتی اینترنت رو قطع می کنم درست عمل می کنه؟!!!!!!

 public void setPostIsVisited(int postId,int isVisited){
SQLiteDatabase sqLiteDatabase = this.getWritableDatabase();
ContentValues contentValues = new ContentValues();
contentValues.put(COL_IS_VISITED,isVisited);
int rowAffect = sqLiteDatabase.update(POST_TABLE_NAME,contentValues,COL_ID+" = ?",new String[]{String.valueOf(postId)});
Log.i("TAG", "setPostIsVisited: RowAffected" +rowAffect);

}
 public void onBindViewHolder(NewsViewHolder holder, int position) {
final Post post = posts.get(position);
Picasso.with(context).load(post.getPostImageUrl().replace("localhost", "192.168.1.102")).into(holder.newsImage);
holder.title.setText(post.getTitle());
holder.content.setText(post.getContent());
holder.date.setText(post.getDate());
if (post.getIsVisited() == 1){
Log.i("TAG", "Color = Red" );
holder.itemView.setBackgroundColor(ContextCompat.getColor(context,R.color.color_visited_post));
}else {
holder.itemView.setBackgroundColor(ContextCompat.getColor(context,R.color.color_not_visited_post));
Log.i("TAG", "Color = Blue" + post.getTitle() );

}
 
+1 0
۲ تا احتمال داره. اول اینکه چون آیپی لوکال استفاده میکنید، عکستون خالی لود بشه و اگر بکگراند باشه، توی حالت آنلاین پشت عکس مشخص نشه. دوم اینکه کدهاتون رو توی try catch گذاشته باشید و وقتی با آیپی لوکال کار میکنید به درستی کار میکنه، ولی وقتی به نت وصلید اررو میده و به خط تغییر رنگ نمیرسه. باز بهتر بود میگفتید اون لاگ هایی که قراردادید اجرا میشه یا خیر و یک تست با عکسی که توی لوکالتون نباشه(لینک یک عکس توی وب رو بدید) بزنید ببینید مشکل حل میشه یا خیر. (9 سال پیش)
0 0
من احتمال میدم وقتی به لوکال وصل هست همون مقادیر دریافتی از لوکال رو می خونه و مقدار getIsVisited توی همشون برابر صفر هست ولی وقتی به لوکال وصل نیستم این مقدار رو از دیتابیس ذخیره شده می خونه راه حل چیه؟ (9 سال پیش)
0 0
دوست عزیز ریش و قیچی دست شماست، باید دیباگ کنید ببینید کدوم یکی از احتمالات درسته. (9 سال پیش)
0 0
به یه مشکل دیگه برخوردم توی ایمولاتور اطلاعات از دیتابیس اندروید خونده میشن ولی توی گوشی خودم اطلاعات خونده نمیشن دیباگ هم کردم توی گوشی هیچ اطلاعاتی رو برگشت نمی ده ولی اطلاعات رو ذخیره می کنه (9 سال پیش)
0 0
آقای حاج حسینی من توی قسمت ست کردن رنگ لاگ گذاشتم توی هر دو تا حالت لاگ ها به درستی کار می کنن ولی نمی دونم مشکل رو چجوری حل کنم لطفا راهنمایی کنید؟! (9 سال پیش)
0 0
من مشکلتون رو متوجه نشدم. لاگ ها به درستی کار میکنن، خوب چه چیزی کار نمیکنه؟ متوجه شدید دیتا چرا درست خونده نمیشه؟ (9 سال پیش)
0 0
پرمیشن هارو چک کردید؟ ممکنه دلیل اینکه گوشی اطلاعات رو نمیخونه اون باشه! (9 سال پیش)
0 0
اطلاعات به درستی خونده میشن فقط این شرط درست اجرا نمیشه (9 سال پیش)
0 0
هادی جان با توجه به اینکه شما لاگ هارو به درستی چاپ میکنی، شرط به درستی عمل میکنه. به جای تغییر رنگ itemView یکی از view های داخل xml رو تغییر بده ببین درست کار میکنه یا نه. از Color.parseColor هم استفاده کن برای تست، شاید روی گوشی شما Context.Compat درست کار نکنه. کلا وقتی ازین مشکلات پیش میاد اول دیباگ، دوم خورد کردن اجزاء کد جواب میده. (9 سال پیش)
0 0
ببیند شما (ببخشید) متوجه نشدید این کدها وقتی به اینترنت وصل نیستم کاملا درست جواب میدن. 2- وقتی به اینترنت وصل میشم تغییر رنگ رو یه لحظه لحاظ می کنه ولی دوبار داخل شرط اجرا میشه و رنگ به حالت قبلی برمی گرده. (9 سال پیش)
0 0
باید کدهارو خورد کنید. اول از همه چک کنید ببینید وب سرویس چند بار ریسپانس میگیره. امکان داره retry policy ست کرده باشید و همون کارو خراب کرده باشه، یا دو بار صداش میزنید. بعد چک کنید که توی اداپتر، هر آیتم چند بار رنگشون عوض میشه. با لاگ گرفتن به جایی نمیرسید، پیشنهاد من دیباگ کردنه. توی دیباگ دیتای داخل متغیر Post رو هم هربار چک کنید. (9 سال پیش)
0 0
اره retry policy ست کردم (9 سال پیش)
0 0
این لینک ویدیو دیباگ کردنه ببینید متوجه میشد. لینک : لینک (9 سال پیش)
0 0
خوب وقتی شما عکس ست میکنی، همیشه عکس میاد روی آیتم! ولی برای اینکه مطمئن شی، دانلود عکسو وردار ببین توی حالت عادی رنگ به درستی تغییر میکنه یا نه. اگر درست بود مشکل از همون عکسه. راه حلشم اینه که برای پیکاسو یک لیستنر بذاری که وقتی دانلود شد، رنگ هولدر و بقیه مقادیر تغییر کنه (9 سال پیش)
 برای این سوال پاسخی وجود ندارد.

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .