অ্যান্ড্রয়েড লিস্টভিউতে সিঙ্ক্রোনাইজড (সিন্ক্রোনাইজড) লিস্ট ব্যবহার
এই উদাহরণে আমরা দেখব কীভাবে 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 আইকনে ক্লিক করুন। আপনার মোবাইল ডিভাইস সিলেক্ট করুন এবং ফলাফল দেখুন।

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