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

Android-এ synchronizedSortedSet কীভাবে ব্যবহার করবেন?

Android-এ Collections.synchronizedSortedSet() ব্যবহার করার টিউটোরিয়াল

এই উদাহরণে দেখানো হয়েছে Android-এ synchronizedSortedSet কীভাবে ব্যবহার করবেন।

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

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

স্টেপ ২: 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" 
    tools:context = ".MainActivity" 
    android:orientation = "vertical"> 
    <EditText 
        android:id = "@+id/name" 
        android:layout_width = "match_parent" 
        android:hint = "নাম লিখুন" 
        android:layout_height = "wrap_content" /> 
    <LinearLayout 
        android:layout_width = "wrap_content" 
        android:layout_height = "wrap_content"> 
        <Button 
            android:id = "@+id/save" 
            android:text = "সংরক্ষণ" 
            android:layout_width = "wrap_content" 
            android:layout_height = "wrap_content" /> 
        <Button 
            android:id = "@+id/refresh" 
            android:text = "রিফ্রেশ" 
            android:layout_width = "wrap_content" 
            android:layout_height = "wrap_content" /> 
    </LinearLayout> 
    <ListView 
        android:id = "@+id/listView" 
        android:layout_width = "match_parent" 
        android:layout_height = "wrap_content"> 
    </ListView> 
</LinearLayout>

উপরের কোডে নামের জন্য একটি EditText নেওয়া হয়েছে। Save বাটনে ক্লিক করলে ডেটা ArrayList-এ সংরক্ষিত হবে। Refresh বাটনে ক্লিক করলে ListView-এ পরিবর্তনগুলো দেখাবে।

স্টেপ ৩: src/MainActivity.java-এ কোড যোগ করুন

package com.example.andy.myapplication; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.EditText; 
import android.widget.ListView; 
import android.widget.Toast; 
import java.util.Collections; 
import java.util.Set; 
import java.util.ArrayList; 
import java.util.SortedSet; 
import java.util.TreeSet; 
import java.util.Vector; 

public class MainActivity extends AppCompatActivity { 
    EditText name; 
    ArrayAdapter arrayAdapter; 
    ArrayList<String> array_list; 
    SortedSet set = new TreeSet(); 
    private ListView listView; 
    
    @Override 
    protected void onCreate(Bundle readdInstanceState) { 
        super.onCreate(readdInstanceState); 
        setContentView(R.layout.activity_main); 
        array_list = new ArrayList<String>(); 
        name = findViewById(R.id.name); 
        listView = findViewById(R.id.listView); 
        
        findViewById(R.id.refresh).setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View v) { 
                arrayAdapter.notifyDataSetChanged(); 
                listView.invalidateViews(); 
                listView.refreshDrawableState(); 
            } 
        }); 
        
        findViewById(R.id.save).setOnClickListener(new View.OnClickListener() { 
            @Override 
            public void onClick(View v) { 
                if (!name.getText().toString().isEmpty()) { 
                    set.add(name.getText().toString()); 
                    // synchronizedSortedSet তৈরি করা হয়েছে
                    Set syncSet = Collections.synchronizedSortedSet(set); 
                    array_list.clear(); 
                    array_list.addAll(syncSet); 
                    arrayAdapter = new ArrayAdapter(MainActivity.this, android.R.layout.simple_list_item_1, array_list); 
                    listView.setAdapter(arrayAdapter); 
                    Toast.makeText(MainActivity.this, "সংরক্ষিত হয়েছে", Toast.LENGTH_LONG).show(); 
                } else { 
                    name.setError("নাম লিখুন"); 
                } 
            } 
        }); 
    } 
}

synchronizedSortedSet ব্যাখ্যা

Collections.synchronizedSortedSet(SortedSet<E> s) মেথডটি একটি সর্টেড সেটের থ্রেড-সেফ (সিঙ্ক্রোনাইজড) র‍্যাপার রিটার্ন করে। এটি মাল্টি-থ্রেডেড এনভায়রনমেন্টে একই সেটে একসাথে একাধিক থ্রেড অ্যাক্সেস করলে ডেটা ইনকনসিস্টেন্সি রোধ করে। TreeSet বেসিক্যালি থ্রেড-সেফ নয়, তাই মাল্টি-থ্রেডেড অ্যাপ্লিকেশনে এটি ব্যবহার করা প্রয়োজনীয়।

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

Android Studio-তে Run আইকনে ক্লিক করে অ্যাপ চালান। ডিভাইস সিলেক্ট করুন।

Android-এ synchronizedSortedSet কীভাবে ব্যবহার করবেন?

উপরের ফলাফলে TreeSet-এর এলিমেন্টগুলো অ্যাডাপ্টারের মাধ্যমে ListView-এ দেখানো হয়েছে।

  1. অ্যান্ড্রয়েডে LocalBroadcastManager ব্যবহারের পদ্ধতি

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

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

  4. Android-এ NavigationView ব্যবহার করে নেভিগেশন ড্রয়ার তৈরির পদ্ধতি