Sponsor

অ্যান্ড্রয়েড অ্যাপে পুল টু রিফ্রেশ যুক্ত করা

0
3

আমরা যখন ইন্টারনেট নির্ভর কোন অ্যাপ তৈরি করব, তখন আমাদের মাঝে মাঝে ডেটা আপডেট করার দরকার হতে পারে। আর সাধারণত আমরা প্রায় সব গুলো অ্যাপেই দেখি পুল টু রিফ্রেশ অপশনটা যুক্ত থাকে। এটাকে Swipe to Refresh ও বলা হয়। Swipe to Refresh যুক্ত করার জন্য আমাদের সাপোর্ট লাইব্রেরির দরকার হবে। গ্রেডেল ডিফেন্ডেন্সিতে সাপোর্ট লাইব্রেরি যুক্ত করে নিবঃ

compile 'com.android.support:support-v4:25.3.1'

এই অ্যাপে আমরা লিস্ট ভিউতে পুল টু রিফ্রেশ যুক্ত করব। অ্যান্ড্রয়েড লিস্ট ভিউ – Android ListView লেখাটিতে আমরা দেখেছি কিভাবে লিস্ট ভিউ নিয়ে কাজ করা যায়। আমরা ঐ প্রজেক্টেই পুল টু অপশন যুক্ত করব। আমাদের অ্যাপ দেখতে এমন হবেঃ

সোয়াইপ টু রিফ্রেশ যুক্ত করার জন্য আমাদের লিস্ট ভিউ android.support.v4.widget.SwipeRefreshLayout উইজেটের মধ্যে রাখতে হবে। activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="me.jakir.swipetorefreshinlistview.MainActivity">

    <android.support.v4.widget.SwipeRefreshLayout android:id="@+id/swipe_refresh_layout" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintTop_toTopOf="parent">

        <ListView android:id="@+id/list_view" android:layout_width="match_parent" android:layout_height="match_parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" />
    </android.support.v4.widget.SwipeRefreshLayout>
</android.support.constraint.ConstraintLayout>

লিস্টভিউ এর লিস্ট আইটেমের জন্য list_item.xml:

<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent">
</TextView>

এতটুকু করলেই সোয়াইপ করতে পারব আমরা। সোয়াইপ করছে কিনা, তা চেক করার জন্য আমাদের setOnRefreshListener যুক্ত করতে হবে। তা যুক্ত করতে পারি এভাবেঃ

  mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_layout);
        mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                refreshContent();
            }
        });

refreshContent মেথডে হয়তো আমরা নেটওয়ার্ক কল করব। নেটওয়ার্ক কল করে যে ডেটা গুলো পাবো, যে গুলো লিস্টে যুক্ত করব। এই উদাহরণে আমরা নেটওয়ার্ক কল না করে এমনিতে একটা ডামি ডেটা যুক্ত করেছি লিস্ট ভিউতেঃ

  private void refreshContent() {

        mSwipeRefreshLayout.setRefreshing(false);
        rainbowColors.add("Another color");
        mAdapter.notifyDataSetChanged();

    }

সম্পূর্ণ MainActivity.java:

import android.os.Bundle;
import android.support.v4.widget.SwipeRefreshLayout;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;

public class MainActivity extends AppCompatActivity {
    SwipeRefreshLayout mSwipeRefreshLayout;
    ArrayAdapter<String> mAdapter;
    ListView mListView;
    ArrayList<String> rainbowColors = new ArrayList<String>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        populateListView();

        // add click listener on list item
        registerClickCallBack();
    }


    private void populateListView() {



        // crate list of list_items
        rainbowColors.add("Red");
        rainbowColors.add("Orange");
        rainbowColors.add("Yellow");

        // build adapter
        mAdapter = new ArrayAdapter<String>(this, R.layout.list_item, rainbowColors);

        // configure list view
        mListView = (ListView) findViewById(R.id.list_view);

        mListView.setAdapter(mAdapter);


        mSwipeRefreshLayout = (SwipeRefreshLayout) findViewById(R.id.swipe_refresh_layout);
        mSwipeRefreshLayout.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
            @Override
            public void onRefresh() {
                refreshContent();
            }
        });

    }


    private void registerClickCallBack() {
        ListView list = (ListView) findViewById(R.id.list_view);

        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {

                TextView textView = (TextView) view;
                String message = "You clicked # " + position + ", which is : "
                        + textView.getText().toString();
                Toast.makeText(MainActivity.this, message, Toast.LENGTH_LONG).show();
            }
        });

    }

    private void refreshContent() {

        mSwipeRefreshLayout.setRefreshing(false);
        rainbowColors.add("Another color");
        mAdapter.notifyDataSetChanged();

    }
}

অ্যাপটি রান করে পুল টু রিফ্রেশ করলে লিস্ট ভিউতে নতুন একটা আইটেম যুক্ত হবে। এবার নিজের মত করে মডিফাই করে যে কোন কিছুই আপনি করতে পারেন।

সোর্সকোড পাওয়া যাবে গিটহাবে। এন্ড্রয়েড নিয়ে অন্যান্য লেখা গুলো পাওয়া যাবে অ্যাপ ডেভ পেইজে।

Căutare
Categorii
Citeste mai mult
Nulled
Uvodo v1.0.3 - Headless eCommerce Platform PHP Script Free
Uvodo v1.0.3 – Headless eCommerce Platform PHP Script Free Download. Uvodo is a...
By Nettumi 2026-09-18 03:48:49 0 23
Hacking Course
ব্লগের জন্য ফ্রি Stock Photo পাওয়ার সেরা Website (Part 2)
আগের পোস্টে আমরা কয়েকটি free stock photo website নিয়ে আলোচনা করেছি। সেগুলো থেকে blogger বা...
By Nettumi 2026-09-25 16:51:11 0 19
Tech
বাচ্চা কাচ্চাদের জন্য প্রোগ্রামিং - Kano Code
বাচ্চাদের প্রোগ্রামিং শেখার জন্য দারুণ সব ল্যাঙ্গুয়েজ রয়েছে। এর আগে আরেকটা লেখা লিখেছিলামঃ বাচ্চা...
By Nettumi 2026-09-30 18:40:12 0 1
Tech
“ইনভেন্টরী” এমন একটা সফটওয়্যার যেটা দিয়ে পুরো দোকান বা শপের যাবতীয় সকল কাজ সম্পূর্ণ করতে পারবেন | Techtunes | টেকটিউনস
মোবাইলের মাধ্যমে চ্যাট করার কিছু দারুণ সফটওয়্যার মো. আমিনুল ইসলাম সজীব
By Nettumi 2026-09-26 11:49:34 0 19
Nulled
EasyPlex v2.3 Nulled - Movies - Live Streaming - TV Series, Anime App Source
EasyPlex v2.3 Nulled – Movies – Live Streaming – TV Series, Anime App Source...
By Nettumi 2026-09-17 18:40:59 0 30
‎ ‎ ‎
Nettumi https://nettumi.com