سوال در مورد ساخت اداپتور

پرسیده شده
فعالیت 1496 روز پیش
دیده شده 1296 بار
0

سلام خدمت دوستان و استاد بزرگوار سال نو همگی مبارک

دوستان بنده در ساخت اداپتور به یه موردی برخوردم خواستم از شما هم سوال کنم که برای شما هم این طور هست یا نه

این که تو ساخت اداپتور وقتی یه کلاسی به نام اداپتور می سازیم و بعدش یه کلاس با نام ViweHolder  و نهایتا یه تا متد تو اداپتور impelimen می کنیم تو اون پارامتر های وردی قبلاً تو متد اول یکی بود int Viwetype که الان برای من میاره int i یعنی عوض Viwetype میاره i و تو قسمت onbiond یه پارامتری بود با نام int position که باز به جای position میاره i که قبلا درک موضوع از این نظر که int مربوط به چیه بهتر بود الان خواستم سوال کنم برای شما هم این طور هست یا برای بنده است فکر کنم بعد از آپدیت این موضوع پیش آمده ممنون می شم استاد هم نظری دارن بفرمایند شاید بنده یه جایی رو اشتباه می رم که این طور می شه ولی مثل اموزش پیش می رم.

 

فایل پیوست

سالار غیور کلیبر
سالار غیور کلیبر

5 فروردین 99

2
حذف شده

سالار عزیز سلام وقت بخیر کمی سوال شما برای من مبهم بود ممنون میشم اگر بد متوجه شدم عکسی بدین از اداپتور تا مشکل را متوجه شویم 

اول که نخیر ربطی به اپدیت نداره و از این بابات خیالتون راحت باشه یعنی اپدیت تاثیری توی کد نداره و صرفا بستر نرم افزاری هست (در مواقعی ممکنه گوگل چیزی رو منسوخ کنه که روی متد یا کلاس مورد نظر خط میکشه که یعنی دیپریکیت شده !)

پس حتما ی جای کد رو اشتباه نوشتید .

بنظر من به قسمت زیر توجه ویژه داشته باش که اشتباه ننوشته باشی به عنوان مثال:

extends RecyclerView.Adapter<StudentRecyclerViewAdapter.StudentViewHolder>

در<> باید ابتدا نام کلاس و سپس نام ViewHolder ساخته شده نوشته و سپس implement کنید .

اگر منظور شما رو بد متوجه شدم ممنون میشم عکسی ارسال کنید.

public class StudentRecyclerViewAdapter extends RecyclerView.Adapter<StudentRecyclerViewAdapter.StudentViewHolder> {
  محل قرار گیری اری لیست
  public StudentRecyclerViewAdapter(پارامتر مورد نظر ){
    this.students=students;
  }
  @NonNull
  @Override
  public StudentViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
    return new StudentViewHolder(LayoutInflater.from(parent.getContext()).inflate(R.layout.item_student,parent,false));
  }

  @Override
  public void onBindViewHolder(@NonNull StudentViewHolder holder, int position) {
    holder.bindItem(students.get(position));
  }

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

  public void addStudent(Student student){
    this.students.add(0,student);
    notifyItemInserted(0);
  }

  public class StudentViewHolder extends RecyclerView.ViewHolder{
    TextView txt_char;
    TextView txt_fullname;
    TextView txt_course;
    TextView txt_top;
    public StudentViewHolder(@NonNull View itemView) {
      super(itemView);
      فایند کردن ایتم ها
    }
    public void bindItem(محل قرار گیری پارامتر ها){
      ست کردن 
    }
  }
}

 

فایل پیوست

پوریا شفیعی

توسط

پوریا شفیعی

5 فروردین 99

0
حذف شده

نه درست رفتم انگار ولی منظور بنده اون جایی هست که تو پارامتر وردوی متد oncreatViweHolder نوشته int ViweType برای من نوشته int i و اونجا که نوشته int position باز برای من نوشته int i نمی دونم اشکال کار کجاست؟
یکی هم این که پوریا جان من سه روز هست درگیر همین ریسایکلر ویو هستم از این سایت داخلی یا خارجی به اون سایت خلاصه یه کم خسته شدم این که برای خیلی از کدها انگار باید تقلیدی جلو بریم وقت می شه برای یه سوال ساده ساعت ها می گردم شاید خیلی از دوستان به راحتی قبول می کنند و رد می شن و همین جور تقلیدی پیش می رن ولی برای من تو یه ویدیوی سی دقیقه ای شاید ده تا سوال پیش میاد که تا یک یک رو جواب پیدا نکنم اذیت می شم همین جور تقلید پیش برم تو تلگرام به استاد آوند هم پیام دادم که اگر گروهی می بود خیلی خوب می شد شاید دوستان کمک می کردند
خلاصه خیلی خسته شدم مثلا می گم چرا inflate باید بکنیم و setcontantViwe نمی کنیم اصلا میرم دنبال inflate می گردم که به جه کار میاد و ... خیلی علاقه داشتم شماره شما رو داشته باشم می تونم حداقل تو برخی مواقع تبادل نظر بکنم ولی شما خیلی از من جلو هستید من از آموزش ها عقب افتادم یه محتوا رو شاید چند بار ببینم باز از نو ... عکس می فرستم برات از اون قسمتی که می گم 

فایل پیوست

سالار غیور کلیبر

توسط

سالار غیور کلیبر

5 فروردین 99

حذف شده
سلام سالار، در موردinflate , setContentView دو تا ادرس هست تا حدودی کمک میکنه https://b2n.ir/677139 و https://b2n.ir/021261 در مورد مشکل الان هم بنظرم شناسه AnyDesk ت رو بده به پوریا تا پوریا هم بررسی کنه و بنظرم برنامه نویسی که درگیر نباشه، برنامه نویس نیست :-) بعضی وقتا من به جز این سایت اون سایت از این کتاب ب اون کتاب هم میرم
مهرداد

5 فروردین 99

0
حذف شده
package com.example.myapplication15;

import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import androidx.annotation.NonNull;
import androidx.recyclerview.widget.RecyclerView;

public class ContactsAdapter extends RecyclerView.Adapter<ContactsAdapter.ViweHolder> {


    @NonNull
    @Override
    public ViweHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {

        return new ViweHolder();
    }

    @Override
    public void onBindViewHolder(@NonNull ViweHolder viweHolder, int i) {

    }

    @Override
    public int getItemCount() {
        return 0;
    }

    public class ViweHolder extends RecyclerView.ViewHolder {

        private TextView fullnameTv;

        public ViweHolder(@NonNull View itemView) {
            super(itemView);

            fullnameTv = itemView.findViewById(R.id.full_nameTv);

        }

        public void bindContact(String fullname){
            fullnameTv.setText(fullname);


        }
    }
}

 

فایل پیوست

سالار غیور کلیبر

توسط

سالار غیور کلیبر

5 فروردین 99

1
حذف شده

سالار جان 

مشکل رو فکر کنم متوجه شدم که کجاست شما ابتدا کلاس اداپتر رو میسازی و extend میکنی ولی داخل <> چیزی نمینویسی سپس داخل کلاس اداپتور کلاس ویو هولدر ولی با یه نام دیگه مثلا StudentViewHolder میسازی و بعد کانستراکتورشو ایمپلیمنت میکنیم و سپس میایم داخل <> و مینویسیم ContactsAdapter.StudentViweHolder

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

چون اگر نام کلاس ویو هولدر رو خود ویو هولدر بسیازیم ممکنه بخاطر شباهت پکیج نیم هایی که هست شما اشتباه پکیج نیم رو انتخاب کنی پس همچین کارو انجام بده ببین مشکلت حل میشه یا خیر .

و اینکه وسواس نشو چون به مرور یاد خواهی گرفت و قابل هضم میشه خودمم همینطوریم بعضی مباحث 

شماره تماسم : تماس

پیام بدی جواب میدم خوشحال میشم.

موفق باشی.

فایل پیوست

پوریا شفیعی

توسط

پوریا شفیعی

5 فروردین 99

0
حذف شده

نشد برادر باز یکی با نام Test برای کلاس ویوهولدر ساخت نشد حتی اون قسمتی که هست که باید به صورت ViweGruop parent باشه برای من میاره ViweGroup viwegroup

 

 

فایل پیوست

سالار غیور کلیبر

توسط

سالار غیور کلیبر

5 فروردین 99