بروز خطا
[message]
اشتراک در سوال
رای ها
[dataList]
مشکل در نمایش بخشی از اطلاعات جیسون دریافتی
دوستان عزیز من یک سری اطلاعات رو با فرمت جیسون از سرور می گیرم و داخل یک لیست نشون می دم حالا هر ایتم از لیست چند تا دسته داره که با کلیک روی هر آیتم یه دیالوگ باز میشه و اون ایتم ها رو دوباره به صورت لیست نشون می ده خب من همه ی این کار هارو انجام دادم ولی یه مشکلی هست که پایین می گم فعلا کدهای این قسمت رو ببیند :
[ { "cat_id": 593, "title": "آلرژی و ایمونولوژی", "sub_cat": [ { "cat_id": 594, "cat_title": "متخصص", "cat_parent_fk": 593 }, { "cat_id": 595, "cat_title": "فوق تخصص", "cat_parent_fk": 593 } ] }, { "cat_id": 15, "title": "ارتوپد", "sub_cat": [ { "cat_id": 506, "cat_title": "متخصص", "cat_parent_fk": 15 }, { "cat_id": 507, "cat_title": "فوق تخصص", "cat_parent_fk": 15 } ] }]
حالا می خوام با کلیک روی هر قسمت این مقدار نشون داده بشه :
"sub_cat": [
{
"cat_id": 594,
"cat_title": "متخصص",
"cat_parent_fk": 593
},
{
"cat_id": 595,
"cat_title": "فوق تخصص",
"cat_parent_fk": 593
}
]
مشکل من اینه که همه ی اینا نمایش داده میشن نه فقط قسمت مربوط به هر آیتم :
اینم از کدهای آداپترم
public class CatsAdapter extends RecyclerView.Adapter<CatsAdapter.ViewHolder> {
private Context context;
private List<Cats> list;
CatsAdapter(Context context, List<Cats> list) {
this.context = context;
this.list = list;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View view = LayoutInflater.from(context).inflate(R.layout.cat_index, parent, false);
return new ViewHolder(view);
}
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
final Cats cats = list.get(position);
holder.txt_title.setText(cats.getTitle());
holder.cardView.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Dialog dialog = new Dialog((Activity) context);
String id = cats.getCat_id();
Log.i("l", "onClick: " +id );
List<Cats> catsList = new ArrayList<>();
dialog.setContentView(R.layout.custompopup);
dialog.getWindow().setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
RecyclerView recyclerView = (RecyclerView) dialog.findViewById(R.id.rec_dialog);
DialogAdapter dialogAdapter = new DialogAdapter(context, list);
recyclerView.setLayoutManager(new LinearLayoutManager(context));
recyclerView.setAdapter(dialogAdapter);
dialog.show();
}
});
ImageRequest.create(holder.image).setTargetUrl(cats.getImage()).execute();
}
@Override
public int getItemCount() {
return list.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
ImageView image;
TextView txt_title;
CardView cardView;
public ViewHolder(View itemView) {
super(itemView);
image = (ImageView) itemView.findViewById(R.id.img_cat);
txt_title = (TextView) itemView.findViewById(R.id.title_cat);
cardView = (CardView) itemView.findViewById(R.id.card_view);
txt_title.setSelected(true);
}
}
}
0
0
کد بخضی که لیست رو پر میکنید رو بذارید فک کنم دارید داخلی ترین جیسون رو به اداپتر پاس میدین با id منحصر به فردش کنید (8 سال پیش)
0
0
دوست عزیز مشکل من برطرف گردید یکی از بچه های خب ایرانی توی استک جواب سوالمو دادن. (8 سال پیش)
برای این سوال پاسخی وجود ندارد.
پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .
