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();

    }
}

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

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

Zoeken
Categorieën
Read More
Nulled
রবি কোম্পানির ৪৫ জি নামে বোয়া প্যাকেজে প্রতারণা! | Techtunes | টেকটিউনস
তৈরী করুন উইন্ডোজের লাইভ সিডি এস এম মেহেদী আকরাম
By Nettumi 2026-09-25 03:19:01 0 15
Tech
মাইক্রোসফট অফিস বাংলা বুক | Techtunes | টেকটিউনস
মোবাইলের মাধ্যমে চ্যাট করার কিছু দারুণ সফটওয়্যার মো. আমিনুল ইসলাম সজীব
By Nettumi 2026-09-26 11:50:45 0 28
Tech
Ecommerce site in WordPress woocommerce part-9 | Techtunes | টেকটিউনস
মজিলার নির্বাচিত সাতটি বেস্ট ফায়ারফক্স 3 অ্যাডঅন দুঃসাহসী টিনটিন
By Nettumi 2026-09-25 03:43:46 0 28
Nulled
Faculty LMS Mobile App v1.0 - eLearning Management System Flutter App Source
Faculty LMS Mobile App v1.0 – eLearning Management System Flutter App Source Code Free...
By Nettumi 2026-09-17 19:01:23 0 14
Nulled
SureForms Pro v2.8.3 - AI Drag & Drop Form Builder WordPress Plugin
SureForms Pro v2.8.3 – AI Drag & Drop Form Builder WordPress Plugin Free Download....
By Nettumi 2026-09-17 18:05:59 0 67
‎ ‎ ‎
Nettumi https://nettumi.com