آموزش جاوا و اندروید

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

آموزش جاوا و اندروید

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

طبقه بندی موضوعی

۲۱ مطلب در آذر ۱۳۹۹ ثبت شده است

برای اینکه آیتم های ریسایکلر ویو از هم فاصله داشته باشن (معمولا آیتم ها کارد ویو هستن) در rootکه همون کارد ویو هست اتریبیوت زیر را اضافه میکنیم:

 

app:cardUseCompatPadding="true"

 

 

۰ نظر موافقین ۰ مخالفین ۰ ۲۴ آذر ۹۹ ، ۱۷:۲۱
میم دال

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

2020-03-23T13:58:53Z

T جدا کننده بوده و بیانگر اینه که در ادامه مقدار زمان آمده است. احتمالا مخفف time هست.

Z بیانگر UTC timezone هست.

 

این نوع بیان تاریخ استاندارد ISO 8601 است.

۰ نظر موافقین ۰ مخالفین ۰ ۲۴ آذر ۹۹ ، ۱۶:۲۴
میم دال

مقاله جالبیه

 

یه قرارداد منطقی برای نامگذاری ریسورس ها معرفی میکنه

 

ترجمش

 

ولی من اصلشو ترجیح میدم :)

۰ نظر موافقین ۰ مخالفین ۰ ۲۴ آذر ۹۹ ، ۰۳:۴۹
میم دال

دو نوع BottomSheet داریم:

 Persistent Bottom Sheet و Modal Bottom Sheet

 

Persistent Bottom Sheet

 

این جزئی از لیوت هست.

برای تعریف شی ای از جنس BottomSheetBehavior تعریف کرده و به صورت زیر مقدار دهی میکنیم:

۰ نظر موافقین ۰ مخالفین ۰ ۲۳ آذر ۹۹ ، ۰۱:۲۶
میم دال

برای اینکه یک فیلد سریالایز و دیسریالایز نشود، دو روش وجود دارد:

 

1. اون فیلد رو transient تعریف کنیم. اینجوری:

private transient Boolean isDeveloper;

در این صورت این فیلد در سریالایز وجود نخواهد داشت و در دیسریالایز حتا اگر در جیسون مقدار داشته باشد اما نال خواهد گرفت.

 

2. روش بهتر که استفاده از انوتیشن Expose است.

@Expose(serialize = true, deserialize = false)
private String email;

اینجا میگیم سریالایز بشه ولی دیسریالایز نشه. البته میشه آرگومان این انوتیشن رو خالی گذاشت. در این صورت هر دو کار انجام میشه.

 

هنگام استفاده از این انوتیشن Gson باید اینجوری تعریف شه:

Gson gson = new GsonBuilder().excludeFieldsWithoutExposeAnnotation().create();

نکته: با این روش تعریف Gson، اگر فیلدی انوتیشن Expose رو نداشته باشه، سریالایز و دیسریالایز نخواهد شد.

 

۱ نظر موافقین ۰ مخالفین ۰ ۱۲ آذر ۹۹ ، ۰۹:۵۱
میم دال

انوتیشن SerializedName:

این انوتیشن اسامی فیلدها رو در سریالایزر و دیسریالایزر تغییر میده. اینجوری استفاده میشه:

 

public class User {

    @SerializedName("full_name")
    private String name;
    private String email;
    private int age;
    private Boolean isDeveloper;

    public User(String name, String email, int age, Boolean isDeveloper) {
        this.name = name;
        this.email = email;
        this.age = age;
        this.isDeveloper = isDeveloper;
    }
}

۰ نظر موافقین ۰ مخالفین ۰ ۱۲ آذر ۹۹ ، ۰۹:۰۸
میم دال

اگر متد سریالایز به صورت زیر باشد:

private void serialize() {

    User user = new User(
            "Maryam",
            "Maryamflower111@yahoo.com",
            28,
            null
    );

    Gson gson = new Gson();

    String s = gson.toJson(user);

}

۰ نظر موافقین ۰ مخالفین ۰ ۱۲ آذر ۹۹ ، ۰۷:۴۸
میم دال

سورس جیسونی که قراره دیسریالایز بشه:

۰ نظر موافقین ۰ مخالفین ۰ ۱۱ آذر ۹۹ ، ۱۸:۴۵
میم دال

در اکوسیستم Json تفاوتی بین آرایه و لیست وجود نداره.

۰ نظر موافقین ۰ مخالفین ۰ ۱۱ آذر ۹۹ ، ۱۶:۵۲
میم دال