رتبه موضوع:
  • 0 رای - 0 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
مشکل recyclerView با editText
#1
سلام
من یه recyclerView دارم که داخلش یه سری editText هست
مشکلم اینه که وقتی روی editTextها کلیک میکنم این ارور رو میده:

java.lang.IllegalArgumentException: parameter must be a descendant of this view
این هم کد آداپترم:

public class ZaribAdapter extends RecyclerView.Adapter<ZaribAdapter.viewHolder> {

    List<TblZarayeb> zarayebs;
    AssetManager as;
    Typeface font;
    Context context;

    public ZaribAdapter( List<TblZarayeb> zarayebs , Context context)
    {
        this.zarayebs = zarayebs;
        this.context = context;
    }

    @Override
    public ZaribAdapter.viewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        as = parent.getContext().getAssets();
        font = Typeface.createFromAsset(as,"font/iransans_ultralght.ttf");
        View view = LayoutInflater.from(parent.getContext()).inflate(R.layout.recycler_zarib_items,parent,false);
        return new viewHolder(view);
    }

    @Override
    public void onBindViewHolder(ZaribAdapter.viewHolder holder, int position) {

        holder.txtFaslOnvan.setText(zarayebs.get(position).getFaslOnvan());
        holder.txtZaribCode.setText(zarayebs.get(position).getFaslCode());
        holder.edtZaribPishnahadi.setText(String.valueOf(zarayebs.get(position).getZpishnehadi()));
        holder.edtZaribMantaqei.setText(String.valueOf(zarayebs.get(position).getzMantaghe()));
        holder.edtZaribBalasari.setText(String.valueOf(zarayebs.get(position).getzBalaSari()));
        holder.edtZaribEkhtiari1.setText(String.valueOf(zarayebs.get(position).getZ1()));
        holder.edtZaribEkhtiari2.setText(String.valueOf(zarayebs.get(position).getZ2()));

    }

    @Override
    public int getItemCount() {
        return zarayebs.size();
    }

    public class viewHolder extends RecyclerView.ViewHolder{
        TextView txtZaribCode, txtFaslOnvan;
        TextInputEditText edtZaribPishnahadi, edtZaribMantaqei, edtZaribBalasari, edtZaribEkhtiari1, edtZaribEkhtiari2;
        ViewParent parent,parent2,parent3,parent4,parent5;
        public viewHolder(View itemView) {
            super(itemView);
            txtFaslOnvan = (TextView)itemView.findViewById(R.id.txtFaslOnvan);
            txtZaribCode = (TextView)itemView.findViewById(R.id.txtZaribCode);
            edtZaribPishnahadi = (TextInputEditText)itemView.findViewById(R.id.edtZaribPishnahadi);
            edtZaribMantaqei = (TextInputEditText)itemView.findViewById(R.id.edtZaribMantaqei);
            edtZaribBalasari = (TextInputEditText)itemView.findViewById(R.id.edtZaribBalasari);
            edtZaribEkhtiari1 = (TextInputEditText)itemView.findViewById(R.id.edtZaribEkhtiari1);
            edtZaribEkhtiari2 = (TextInputEditText)itemView.findViewById(R.id.edtZaribEkhtiari2);

            txtZaribCode.setTypeface(font);
            txtFaslOnvan.setTypeface(font);
            edtZaribEkhtiari2.setTypeface(font);
            edtZaribEkhtiari1.setTypeface(font);
            edtZaribBalasari.setTypeface(font);
            edtZaribMantaqei.setTypeface(font);
            edtZaribPishnahadi.setTypeface(font);

        }
    }
}
پاسخ
تشکر شده توسط:
#2
public class ZaribAdapter extends RecyclerView.Adapter {
    List<TblZarayeb> zarayebs;
    AssetManager as;
    Typeface font;
    Context context;

    public ZaribAdapter(List<TblZarayeb> zarayebs, Context context)
    {
        this.zarayebs = zarayebs;
        this.context = context;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        as = context.getAssets();
        font = Typeface.createFromAsset(as, "font/iransans_ultralght.ttf");
        View view = LayoutInflater.from(context).inflate(R.layout.recycler_zarib_items, parent, false);
        return new ZaribViewHolder(v);
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder viewHolder, int position) {
        final TblZarayeb zarib = zarayebs.get(position);
        ZaribViewHolder holder = (ZaribViewHolder) viewHolder;
        holder.txtFaslOnvan.setText(zarib.getFaslOnvan());
        holder.txtZaribCode.setText(zarib.getFaslCode());
        holder.edtZaribPishnahadi.setText(String.valueOf(zarib.getZpishnehadi()));
        holder.edtZaribMantaqei.setText(String.valueOf(zarib.getzMantaghe()));
        holder.edtZaribBalasari.setText(String.valueOf(zarib.getzBalaSari()));
        holder.edtZaribEkhtiari1.setText(String.valueOf(zarib.getZ1()));
        holder.edtZaribEkhtiari2.setText(String.valueOf(zarib.getZ2()));
    }

    @Override
    public int getItemCount() {
        return zarayebs.size();
    }

    private static class ZaribViewHolder extends RecyclerView.ViewHolder {
        public TextView txtZaribCode, txtFaslOnvan;
        public TextInputEditText edtZaribPishnahadi, edtZaribMantaqei, edtZaribBalasari, edtZaribEkhtiari1, edtZaribEkhtiari2;
        public ViewParent parent,parent2,parent3,parent4,parent5;


        public ZaribViewHolder(View view) {
            super(view);
            txtFaslOnvan = (TextView)itemView.findViewById(R.id.txtFaslOnvan);
            txtZaribCode = (TextView)itemView.findViewById(R.id.txtZaribCode);
            edtZaribPishnahadi = (TextInputEditText)itemView.findViewById(R.id.edtZaribPishnahadi);
            edtZaribMantaqei = (TextInputEditText)itemView.findViewById(R.id.edtZaribMantaqei);
            edtZaribBalasari = (TextInputEditText)itemView.findViewById(R.id.edtZaribBalasari);
            edtZaribEkhtiari1 = (TextInputEditText)itemView.findViewById(R.id.edtZaribEkhtiari1);
            edtZaribEkhtiari2 = (TextInputEditText)itemView.findViewById(R.id.edtZaribEkhtiari2);
 
            txtZaribCode.setTypeface(font);
            txtFaslOnvan.setTypeface(font);
            edtZaribEkhtiari2.setTypeface(font);
            edtZaribEkhtiari1.setTypeface(font);
            edtZaribBalasari.setTypeface(font);
            edtZaribMantaqei.setTypeface(font);
            edtZaribPishnahadi.setTypeface(font);
        }
    }
}
پاسخ
تشکر شده توسط:
#3
اینو تست کنین. همینطوری نوشتم فرصت نشد تست کنم. فقط خواستم منطق کار دستتون بیاد. براساس کدتون اگه خطایی گرفتین ویرایش کنین.
پاسخ
تشکر شده توسط:
#4
(08-07-1396، 11:23 ب.ظ)ADMIN نوشته: اینو تست کنین. همینطوری نوشتم فرصت نشد تست کنم. فقط خواستم منطق کار دستتون بیاد. براساس کدتون اگه خطایی گرفتین ویرایش کنین.

مشکل حل نشد، همون ارور رو داره
پاسخ
تشکر شده توسط:
#5
توی پیام خصوصی اطلاعات Remote با AnyDesk یا TeamViewer و زمانی که میتونم وصل بشم رو بفرستین تا روی سیستمتون بررسی کنم. قاعدتاً نباید این مشکل پیش بیاد.
پاسخ
تشکر شده توسط:




کاربران در حال بازدید این موضوع: 1 مهمان