কম্পিউটার টিউটোরিয়াল

অ্যান্ড্রয়েড লিস্টভিউতে সিঙ্ক্রোনাইজড লিস্ট ব্যবহার

অ্যান্ড্রয়েড লিস্টভিউতে সিঙ্ক্রোনাইজড (সিন্ক্রোনাইজড) লিস্ট ব্যবহার

এই উদাহরণে আমরা দেখব কীভাবে Collections.synchronizedList() ব্যবহার করে একটি থ্রেড-সেফ লিস্ট তৈরি করা যায় এবং তা লিস্টভিউতে ব্যবহার করা যায়। এছাড়া এডিটটেক্সট ও বাটনের মাধ্যমে ডেটা ভ্যালিডেশন দেখানো হয়েছে।

ধাপ ১: নতুন প্রজেক্ট তৈরি করুন

Android Studio-তে File → New Project এ যান এবং প্রয়োজনীয় বিবরণ পূরণ করে একটি নতুন প্রজেক্ট তৈরি করুন।

ধাপ ২: লেআউট XML ফাইল সংশোধন করুন

res/layout/activity_main.xml ফাইলে নিচের কোডটি যোগ করুন:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:gravity="center_horizontal"
    android:layout_marginTop="30dp"
    tools:context=".MainActivity">

    <EditText
        android:id="@+id/edit_query"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />

    <Button
        android:id="@+id/buttonPanel"
        android:text="Check"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />

    <ListView
        android:id="@+id/list"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content">
    </ListView>

</LinearLayout>

এখানে একটি EditText, Button এবং ListView ব্যবহার করা হয়েছে। ব্যবহারকারী এডিটটেক্সটে মান লিখে বাটনে ক্লিক করলে লিস্টভিউ আইটেমের সাথে ডেটা ভ্যালিডেশন হবে।

ধাপ ৩: MainActivity.java ফাইলে কোড লিখুন

package com.example.myapplication;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;

public class MainActivity extends AppCompatActivity {
    ListView list;
    String[] mobileArray = {"Android", "IPhone", "WindowsMobile", "Blackberry",
            "WebOS", "Ubuntu", "Windows7", "Max OS X"};
    EditText edit_query;

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

        edit_query = findViewById(R.id.edit_query);
        list = findViewById(R.id.list);

        final ArrayList<String> arrayList = new ArrayList<String>(Arrays.asList(mobileArray));

        // প্রাথমিক সিঙ্ক্রোনাইজড লিস্ট সেট করা
        ArrayAdapter adapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_list_item_1, Collections.synchronizedList(arrayList));
        list.setAdapter(adapter);

        findViewById(R.id.buttonPanel).setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if (!edit_query.getText().toString().isEmpty()) {
                    String input = edit_query.getText().toString();
                    if (arrayList.contains(input)) {
                        Toast.makeText(MainActivity.this, "Already it is in list", Toast.LENGTH_LONG).show();
                    } else {
                        arrayList.add(input);
                        // নতুন সিঙ্ক্রোনাইজড লিস্ট দিয়ে অ্যাডাপ্টার আপডেট
                        ArrayAdapter newAdapter = new ArrayAdapter<String>(MainActivity.this,
                                android.R.layout.simple_list_item_1, Collections.synchronizedList(arrayList));
                        list.setAdapter(newAdapter);
                    }
                }
            }
        });
    }
}

অ্যাপ্লিকেশন চালান

আপনার অ্যান্ড্রয়েড ডিভাইস কম্পিউটারের সাথে সংযুক্ত করুন। Android Studio-তে প্রজেক্টের Activity ফাইল খুলুন এবং টুলবারের Run আইকনে ক্লিক করুন। আপনার মোবাইল ডিভাইস সিলেক্ট করুন এবং ফলাফল দেখুন।

অ্যান্ড্রয়েড লিস্টভিউতে সিঙ্ক্রোনাইজড লিস্ট ব্যবহার

উপরের ফলাফলে লিস্টভিউতে একটি এলিমেন্ট যোগ করা হয়েছে। এখন একই মান লিখে ডেটা ভ্যালিডেশন পরীক্ষা করুন।

  1. অ্যান্ড্রয়েডে Volley JSON Array-এ AbstractList ব্যবহার

  2. অ্যান্ড্রয়েড ফ্র্যাগমেন্টে Context ব্যবহারের পদ্ধতি

  3. এন্ড্রয়েডে SearchView ব্যবহার করার পদ্ধতি

  4. অ্যান্ড্রয়েড টুলবারে SearchView ব্যবহার করার পদ্ধতি