Спонсоры

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

0
6

আমরা যখন ইন্টারনেট নির্ভর কোন অ্যাপ তৈরি করব, তখন আমাদের মাঝে মাঝে ডেটা আপডেট করার দরকার হতে পারে। আর সাধারণত আমরা প্রায় সব গুলো অ্যাপেই দেখি পুল টু রিফ্রেশ অপশনটা যুক্ত থাকে। এটাকে 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();

    }
}

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

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

Поиск
Категории
Больше
Nulled
KartPul v1.1 - Multipurpose WooCommerce Theme Free
KartPul v1.0 – Multipurpose WooCommerce Theme Free Download. KartPul is WordPress...
От Nettumi 2026-09-18 03:54:14 0 56
Tech
গুগল এন্ড্রয়েড অ্যাপে নতুন সুবিধা এলো - Banglatech24.com
গত বছর গুগল আই/ও ইভেন্টে গুগল তাদের মোবাইল অ্যাপে নতুন একটি প্রাইভেসি সংক্রান্ত ফিচার নিয়ে আসার...
От Nettumi 2026-09-25 10:14:31 0 36
Tech
Chat Lit Codes - ChatGPT দিয়ে ইন্টারনেট ডেটা এক্সেস করে রিসেন্ট তথ্য জানুন | Techtunes | টেকটিউনস
মজিলার নির্বাচিত সাতটি বেস্ট ফায়ারফক্স 3 অ্যাডঅন দুঃসাহসী টিনটিন
От Nettumi 2026-09-25 04:00:26 0 56
Nulled
FleetCart v4.7.11 Nulled - Laravel Ecommerce CMS Script
FleetCart v4.7.11 Nulled – Laravel Ecommerce CMS Script Free Download. Fleet Cart is a...
От Nettumi 2026-09-17 18:15:50 0 37
Nulled
Get Out of My Head - ওয়েবসাইটকে করুন বিদ্যুৎ গতিতে ফাস্ট! অপ্রয়োজনীয় Meta Tag ঝেড়ে ফেলুন! ⚡️🌳 | Techtunes | টেকটিউনস
অ্যাপল মানুষকে ফিরিয়ে নিচ্ছে হাত ঘড়ির যুগে… অসামান্য প্রাযুক্তিক উৎকর্ষতায়! একটি Apple...
От Nettumi 2026-09-21 05:34:54 0 40
‎ ‎ ‎
Nettumi https://nettumi.com