در متد student در کلاس java

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

سلام دوستان

سوال اول :

 استاد چرا اول کلاس Student را نوشت بعد نوشت student مگر مثل دفعه قبلی که راجب آداپتر میگفتند در RecyclerView اول نوشتند  String

سوال دوم : 

چرا استاد ایجوری نوشت :

(String.valueOf(student.getScore()))

مگر اینجوری نمشد بنویسیم

(student.getScore())

 نیست int  مگر  String بعد چرا 

    : سوال سوم

دوستان این خط چه کار میکنه؟؟؟

 android:clipToPadding="false"
فایل پیوست

0
حذف شده

سلام و احترام

 

دقت کنید ما در اینجا با Model سر و کار داریم 

و دیتای دریافتی ما از سمت سرور شامل فیلد هایی به عنوان مثال firstname و last_name و course و.. هست .


public class Student {
    private int id;
    private String firstName;
    private String lastName;
    private String course;
    private int score;

    public int getId() {
        return id;
    }

    public void setId(int id) {
        this.id = id;
    }

    public String getFirstName() {
        return firstName;
    }

    public void setFirstName(String firstName) {
        this.firstName = firstName;
    }

    public String getLastName() {
        return lastName;
    }

    public void setLastName(String lastName) {
        this.lastName = lastName;
    }

    public String getCourse() {
        return course;
    }

    public void setCourse(String course) {
        this.course = course;
    }

    public int getScore() {
        return score;
    }

    public void setScore(int score) {
        this.score = score;
    }
}


در Data Model‌ها از کپسوله سازی استفاده می‌شود. در کپسوله سازی سعی می‌شود متغیرها را از دید دیگر کلاس‌ها مخفی کنیم و با استفاده از متدهای واسط که به اصطلاح به آن‌ها Setter و Getter می‌گویند، متغیرها را مقدار دهی و یا از آن‌ها مقدار گیری کنیم. 

کاربرد setter : هنگامی که دیتا از سمت سرور اومد دیتا رو به وسیله setter ها مقدار دهی میکنیم.

کاربر getter :در متد bind کلاس adapter برای ست کردن دیتا بر روی view ها استفاده میکنیم .

به همین دلیل هست که به عنوان پارامتر متد bind این Student student رو میدیم تا دیتا رو با استفاده از getter() اون ست کنیم بر روی view ها.

 

سوال دوم : هنگامی که دیتای Score از سرور دریافت میشه یه مقدار Integer هست (به json دقت کنین) 

همونطور که قبلا آموختید نمیتوانید جز مقداری با دیتاتایپ String به setter یک view بدهید یعنی (setText(۵) غلط است چرا که باعث کرش اپلیکیشن خواهد شد(امتحان کنید).

پس به عمین دلیل با String.valueOf اومدیم و مقدار integer رو به String تبدیل کردیم تا باعث کرش اپ نشود.

 

سوال سوم:

باعث میشه padding در انتهای ریسایکلر در نظر گرفته نشه برای اینکه این موضوع رو متوجه شید گیف زیر رو ببینید.

گیف

اونی که ضربدر دارد clipToPadding برابر با true هست.

فایل پیوست

پوریا شفیعی

توسط

پوریا شفیعی

25 دی 99

حذف شده
با سلام و احترام مرسی آقا پوریا پس باید به عنوان سوال دوم باید بگم همه مقدارها باید از نوع String باشند بله من انجام دادم force close میزد . پس id و Score که از نوع int یا عدد هستند چه زمانی میتونیم از کاربر به عنوان عدد دریافت کنیم. نکنه در این قسمت است که من عکسش را پایین گذاشتم. مرسی
0
حذف شده

سلام آقا پوریا من عکس را اینجا گذاشتم مرسی

 

فایل پیوست

محمدرضا مجیدی

توسط

محمدرضا مجیدی

26 دی 99

حذف شده
ببینین اینکه از نوع int دریافت کنیم يا String بسته به جیسون شما داره و باید بببینید اون مقادیر هر فیلد درون جیسون از چه نوع دیتاتایپی هستن