مرجع مقالات رسمي اپليكيشن مرجع مقالات رسمي اپليكيشن .

مرجع مقالات رسمي اپليكيشن

تفاوت setValue و postValue

اين اسلوب ها براي تغيير تحول داده داخل MutableLiveData استعمال ميشوند.
setValue را تنها مي‌توانيد طراحي اپليكيشن در Thread مهم فراخواني فرمائيدpostValue  را معمولاً در Thread دور نما فراخواني ميكنيم 
دقت: متدهاي setValue و postValue  در كلاس LiveData نيز وجود دارا‌هستند اما در كلاس LiveData اين متدها protected ميباشند و صرفا كلاس هايي كه از LiveData ارث بري دارا‌هستند بدين متدها دسترسي دارا‌هستند. البته در MutableLiveData اين متدها public و در دسترس ميباشند.
LiveData / MutableLiveData معمولاً در آپ ديت رساني داده هاي تيم اي (List ، ArrayList و غيره)  در RecyclerView به كار گيري مي‌گردد.
درپي ، طرحي توليد خوا‌هيم كرد كه اطلاعات را از مقر داده SQLite  مي‌خواند،  داده هاي مقر داده را تغيير و تحول مي‌دهد و اطلاعات را در RecyclerView نشانه ميدهد. براي اينكه هر مجال اطلاعات تغيير و تحول كرد ركوردهاي RecyclerView آپديت گردد از MutableLiveData به كارگيري خوا‌هيم كرد.
در هر آپ تو ديت رساني اطلاعات ، براي خودداري از بارگيري دوباره سطرهاي RecyclerView كه تغيير و تحول نكرده اند ArrayList سابق و نو را با DiffUtil مقايسه ميكنيم.
 
ساختار پروژه مثال

 
 
اضافه كردن نيازمندي ها به پوشه گريدل 
كد هاي تحت را به پوشه build.gradle درون فايل app اضافه فرماييد:
implementation 'com.android.support:design:27.1.1'implementation 'com.android.support:cardview-v7:27.1.1'implementation 'android.arch.lifecycle:extensions:1.1.1' 
 
طراحي پروژه 
كد مرتبط با لايوت activity_main.xml در پايين اورده شده ميباشد:

xmlns:app="https://schemas.android.com/apk/res-auto"xmlns:tools="https://schemas.android.com/tools"android:layout_width="match_parent"android:layout_height="match_parent"tools:context=".MainActivity">
android:layout_width="match_parent"android:layout_height="wrap_content"android:theme="@style/AppTheme.AppBarOverlay">
android:id="@+id/toolbar"android:layout_width="match_parent"android:layout_height="?attr/actionBarSize"android:background="?attr/colorPrimary"app:popupTheme="@style/AppTheme.PopupOverlay" />


android:layout_width="match_parent"android:layout_height="match_parent"app:layout_behavior="@string/appbar_scrolling_view_behavior">
android:id="@+id/recyclerView"android:layout_width="match_parent"android:layout_height="match_parent" />


android:id="@+id/fab"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_gravity="bottom|end"android:layout_margin="@dimen/fab_margin"app:srcCompat="@android:drawable/ic_input_add" />

 
كد لايوت list_item_row.xml در تحت اورده شده ميباشد:

android:layout_width="match_parent"android:layout_height="wrap_content">
android:layout_width="match_parent"android:layout_height="wrap_content"android:padding="8dp"android:gravity="center_vertical">
android:id="@+id/tvUrl"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentStart="true"android:autoLink="web"android:padding="8dp"android:textColor="@android:color/black"android:textSize="20sp" />
android:id="@+id/tvDate"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentLeft="true"android:layout_below="@+id/tvUrl" />
android:id="@+id/btnDelete"android:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_alignParentEnd="true"android:layout_centerVertical="true"android:src="@android:drawable/ic_menu_delete" />





 
كد كلاس DbSettings.java در ذيل گفته شده ميباشد:
package com.journaldev.androidlivedata.db;
import android.provider.BaseColumns;
public class DbSettings {
public static final String DB_NAME = "favourites.db";public static final int DB_VERSION = 1;
public class DBEntry implements BaseColumns {
public static final String TABLE = "fav";public static final String COL_FAV_URL = "url";public static final String COL_FAV_DATE = "date";
}}


برچسب: طراحي اپليكيشن،
امتیاز:
 
بازدید:
+ نوشته شده: ۲۶ آبان ۱۴۰۱ساعت: ۰۹:۲۴:۲۲ توسط:علي پور موضوع:

{COMMENTS}
ارسال نظر
نام :
ایمیل :
سایت :
آواتار :
پیام :
خصوصی :
کد امنیتی :