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

مشکل در نمایش بخشی از اطلاعات جیسون دریافتی

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

دوستان عزیز من یک سری اطلاعات رو با فرمت جیسون از سرور می گیرم و داخل یک لیست نشون می دم حالا هر ایتم از لیست چند تا دسته داره که با کلیک روی هر آیتم یه دیالوگ باز میشه و اون ایتم ها رو دوباره به صورت لیست نشون می ده خب من همه ی این کار هارو انجام دادم ولی یه مشکلی هست که پایین می گم فعلا کدهای این قسمت رو ببیند :

 

[
{
    "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 سال پیش)
 برای این سوال پاسخی وجود ندارد.

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