آموزش SwipeRefreshLayout در برنامه نویسی اندروید
سلام دوستان امیدوارم حالتون خوب باشه در این سری از آموزش برنامه نویسی اندروید به آموزش SwipeRefreshLayout در برنامه نویسی اندروید می پردازیم در ادامه می توانید پیش نمایشی از آن را مشاهده کنید.
همانطور که می بینید با درگ از بالا به پایین یک آیکون Refresh نمایان می شود.
در ابتدای امر باید کتاب خانه زیر را اضافه کنیم برای این کار وارد فایل Build.gradle شده از نوع module در بخش dependencies خط زیر را اضافه کنید.
1 | compile 'com.android.support:support-v4:21.0.+' |
هم اکنون پروژه را sync کرده تمامی علت های خطای گریدل را قبلا بررسی کردیم لطفا انقدر سوال نپرسید ابتدا در سایت جستجو کرده در صورتی که جواب خودتان را پیدا نکردید در بخش سوالات سوال را بپرسید.
یک فایل به نام activity_main.xml ساخته سپس کد ها را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 | <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swipeToRefresh" android:layout_width="match_parent" android:layout_height="wrap_content"> <ListView android:id="@+id/listView" android:layout_width="match_parent" android:layout_height="match_parent" > </ListView> </android.support.v4.widget.SwipeRefreshLayout> </RelativeLayout> |
همانطور که نظاره می کنید یک SwipeRefreshLayout قرار گرفته شده است و در آن یک ListView قرار دارد.
حالا یک فایل به نام MainActivity.java ایجاد کرده و کد های زیر را در آن قرار دهید.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 | package ir.programchi; import android.support.v4.widget.SwipeRefreshLayout; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.widget.ArrayAdapter; import android.widget.ListView; import java.util.ArrayList; import java.util.Collections; import java.util.Random; public class MainActivity extends AppCompatActivity { ArrayList arrayList = new ArrayList(); SwipeRefreshLayout mSwipeRefreshLayout; ListView mListView; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipeToRefresh); mListView = (ListView) findViewById(R.id.listView); mSwipeRefreshLayout.setColorSchemeResources(R.color.colorAccent); arrayList.add("First Element"); arrayList.add("Second Element"); arrayList.add("Third Element"); arrayList.add("Fourth Element"); arrayList.add("Fifth Element"); ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, arrayList); mListView.setAdapter(adapter); mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() { @Override public void onRefresh() { shuffle(); mSwipeRefreshLayout.setRefreshing(false); } }); } public void shuffle(){ Collections.shuffle(arrayList, new Random(System.currentTimeMillis())); ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_list_item_1, arrayList); mListView.setAdapter(adapter); } } |
در ابتدا ما یک Array درست کردیم تا یکسری داده را در آن قرار دهیم سپس view مربوط به هر کدام از شئی ها را به دست آورده و از setColorSchemeResources برای تغییر رنگ SwipeRefreshLayout استفاده کردیم و در ادامه آن داده های sample را به آرایه اضافه کردیم سپس یک اداپتور ایجاد کرده و آرایه خود را در آن قرار می دهیم و سپس بروی listview اداپتور را ست می کنیم. برای اینکه برای SwipeRefreshLayout یک Listener تعریف کنیم یعنی زمانی که از بالا به پایین کشیدیم به اصلاح Refresh شود چون در اینجا ما داده جدیدی نداریم که refresh شود پس همان داده ها را به صورت shuffle ( ایجاد تغییر در چیدمان لیست ما ) نمایش داده شود از void که نام آن shuffle است استفاده شده است.
این آموزش هم به پایان رسید.
موفق باشید.
سلام مهندس.
تشکر از اینکه اطلاعات خودتون رو بدون چشم داشتی در اختیار ما قرار میدین.
شرمنده رمزمو فراموش کردم برا همین ، اینجا سوالمو میپرسم.
در لایه اصلی برنامه، روی دکمه کلیک میکنم و یه فایل xml رو با setContentView که حاوی چند آپشن باتن هست نمایش میدم
حالا میخوام وقتی کارم با این فایل تموم شد برگردم به صفحه اصلی.
اما نمیدونم دستور مقابل setContentView چیه تا ببندمش
البته شاید راهی که میرم کلا منطقی نباشه؟؟