رفتن به مطلب
  • 0

error در recyceler view


hamedgn

سوال

3 پاسخ به این سوال تاکنون داده شده است

ارسال‌های توصیه شده

سلام

 

کد نویسیتون مشکل داره

 

قسمتی که اومدید OnClickListener تعریف کردید مشکل داره

 

دستور رویداد کلیک واسه کاردویو :

public static class ViewHolder extends RecyclerView.ViewHolder {
    public View view;
    public Item currentItem;

    public ViewHolder(View v) {
        super(v);
        view = v;
        view.setOnClickListener(new View.OnClickListener() {
            @Override public void onClick(View v) {
                // item clicked
            }
        });
    }
}

@Override public void onBindViewHolder(ViewHolder viewHolder, int i) {
    viewHolder.currentItem = items.get(i);
}
لینک ارسال
به اشتراک گذاری در سایت های دیگر

از اونجایی که واسه هر آیتم یه رویداد کلیک خاص تعریف کنیم و نیاز به position داریم مجبوریم اونجا رویداد کلیکو تعریف کنیم

این کد منه:

public class RecycelerAdapter extends RecyclerView.Adapter<RecycelerAdapter.MyViewHolder> {
private Context context;
private LayoutInflater inflater;
List<Integer> id;
List<String> pelak;
List<String> number;
List<String> adress;
public RecycelerAdapter(Context context,List<Integer> id,List<String> pelak,List<String> number,List<String> adress){
this.context=context;
this.inflater=LayoutInflater.from(context);
this.id=id;
this.pelak=pelak;
this.number=number;
this.adress=adress;
}

@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v=inflater.inflate(R.layout.lv,parent,false);
MyViewHolder VH=new MyViewHolder(v);
return VH;
}

@Override
public void onBindViewHolder(MyViewHolder holder, final int position) {
holder.textid.setText(id.get(position));
holder.textnumber.setText(number.get(position));
holder.textadress.setText(adress.get(position));
holder.textpelak.setText(pelak.get(position));

holder.cardView.setOnClickListener(new View.OnClickListener(){


Intent intent=new Intent(context,Main2Activity.class);

@Override
public void sheet_card(View v){
View view1 = getLayoutInflater ().inflate (R.layout.bottom_sheet, null);
TextView item1 = (TextView)view1.findViewById(R.id.item1);
TextView item2 = (TextView)view1.findViewById( R.id.item2);
TextView item3 = (TextView)view1.findViewById( R.id.item3);
TextView item4 = (TextView)view1.findViewById( R.id.item4);
item1.setText(id.get(position));
item2.setText(pelak.get(position));
item3.setText(number.get(position));
item4.setText(adress.get(position));

final Dialog mBottomSheetDialog = new Dialog(context,
R.style.MaterialDialogSheet);
mBottomSheetDialog.setContentView(view1);
mBottomSheetDialog.setCancelable(true);
mBottomSheetDialog.getWindow ().setLayout(LinearLayout.LayoutParams.MATCH_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
mBottomSheetDialog.getWindow ().setGravity(Gravity.BOTTOM);
mBottomSheetDialog.show();

ImageView clk=(ImageView) view1.findViewById(R.id.imagesheet);
clk.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent editi=new Intent(context,editd.class);
editi.putExtra("id",2);
editi.putExtra("choise",1);
context.startActivity(editi);
}
});

}
});

}



@Override
public int getItemCount() {

return id.size();
}


class MyViewHolder extends RecyclerView.ViewHolder{
TextView textid;
TextView textpelak;
TextView textadress;
TextView textnumber;
CardView cardView;
public MyViewHolder(View itemView) {
super(itemView);
textid=(TextView) itemView.findViewById(R.id.textid);
textpelak=(TextView) itemView.findViewById(R.id.textpelak);
textadress=(TextView) itemView.findViewById(R.id.textadress);
textnumber=(TextView) itemView.findViewById(R.id.textnumber);
cardView=(CardView) itemView.findViewById(R.id.card);
}
}


}

لینک ارسال
به اشتراک گذاری در سایت های دیگر

 

سلام

 

کد نویسیتون مشکل داره

 

قسمتی که اومدید OnClickListener تعریف کردید مشکل داره

 

دستور رویداد کلیک واسه کاردویو :

public static class ViewHolder extends RecyclerView.ViewHolder {
    public View view;
    public Item currentItem;

    public ViewHolder(View v) {
        super(v);
        view = v;
        view.setOnClickListener(new View.OnClickListener() {
            @Override public void onClick(View v) {
                // item clicked
            }
        });
    }
}

@Override public void onBindViewHolder(ViewHolder viewHolder, int i) {
    viewHolder.currentItem = items.get(i);
}

از اونجایی که واسه هر آیتم یه رویداد کلیک خاص تعریف کنیم و نیاز به position داریم مجبوریم اونجا رویداد کلیکو تعریف کنیم

این کد منه:

public class RecycelerAdapter extends RecyclerView.Adapter<RecycelerAdapter.MyViewHolder> {

private Context context;

private LayoutInflater inflater;

List<Integer> id;

List<String> pelak;

List<String> number;

List<String> adress;

public RecycelerAdapter(Context context,List<Integer> id,List<String> pelak,List<String> number,List<String> adress){

this.context=context;

this.inflater=LayoutInflater.from(context);

this.id=id;

this.pelak=pelak;

this.number=number;

this.adress=adress;

}

@Override

public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {

View v=inflater.inflate(R.layout.lv,parent,false);

MyViewHolder VH=new MyViewHolder(v);

return VH;

}

@Override

public void onBindViewHolder(MyViewHolder holder, final int position) {

holder.textid.setText(id.get(position));

holder.textnumber.setText(number.get(position));

holder.textadress.setText(adress.get(position));

holder.textpelak.setText(pelak.get(position));

holder.cardView.setOnClickListener(new View.OnClickListener(){

Intent intent=new Intent(context,Main2Activity.class);

@Override

public void sheet_card(View v){

View view1 = getLayoutInflater ().inflate (R.layout.bottom_sheetnull);

TextView item1 = (TextView)view1.findViewById(R.id.item1);

TextView item2 = (TextView)view1.findViewById( R.id.item2);

TextView item3 = (TextView)view1.findViewById( R.id.item3);

TextView item4 = (TextView)view1.findViewById( R.id.item4);

item1.setText(id.get(position));

item2.setText(pelak.get(position));

item3.setText(number.get(position));

item4.setText(adress.get(position));

final Dialog mBottomSheetDialog = new Dialog(context,

R.style.MaterialDialogSheet);

mBottomSheetDialog.setContentView(view1);

mBottomSheetDialog.setCancelable(true);

mBottomSheetDialog.getWindow ().setLayout(LinearLayout.LayoutParams.MATCH_PARENT,

LinearLayout.LayoutParams.WRAP_CONTENT);

mBottomSheetDialog.getWindow ().setGravity(Gravity.BOTTOM);

mBottomSheetDialog.show();

ImageView clk=(ImageView) view1.findViewById(R.id.imagesheet);

clk.setOnClickListener(new OnClickListener() {

@Override

public void onClick(View v) {

Intent editi=new Intent(context,editd.class);

editi.putExtra("id",2);

editi.putExtra("choise",1);

context.startActivity(editi);

}

});

}

});

}

@Override

public int getItemCount() {

return id.size();

}

class MyViewHolder extends RecyclerView.ViewHolder{

TextView textid;

TextView textpelak;

TextView textadress;

TextView textnumber;

CardView cardView;

public MyViewHolder(View itemView) {

super(itemView);

textid=(TextView) itemView.findViewById(R.id.textid);

textpelak=(TextView) itemView.findViewById(R.id.textpelak);

textadress=(TextView) itemView.findViewById(R.id.textadress);

textnumber=(TextView) itemView.findViewById(R.id.textnumber);

cardView=(CardView) itemView.findViewById(R.id.card);

}

}

}

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...