উদাহরণের আগে জানা দরকার সিঙ্গলটন ডিজাইন প্যাটার্ন কী। সিঙ্গলটন হলো একটি ডিজাইন প্যাটার্ন যা একটি ক্লাসের ইনস্ট্যানশনকে শুধু একটি ইন্সট্যান্সে সীমাবদ্ধ করে। উল্লেখযোগ্য ব্যবহারগুলোর মধ্যে রয়েছে কনকারেন্সি নিয়ন্ত্রণ এবং অ্যাপ্লিকেশনের ডেটা স্টোর অ্যাক্সেস করার জন্য একটি কেন্দ্রীয় পয়েন্ট তৈরি করা।
এই উদাহরণটি দেখায় কীভাবে অ্যান্ড্রয়েডে HashMap সিঙ্গলটনে সংরক্ষণ করা যায়।
প্রয়োজনীয় ধাপসমূহ
ধাপ ১: নতুন প্রজেক্ট তৈরি করুন
Android Studio-তে File → New Project এ যান এবং প্রজেক্ট তৈরি করার জন্য প্রয়োজনীয় তথ্য পূরণ করুন।
ধাপ ২: লেআউট ফাইলে Button যোগ করুন (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">
<Button
android:id="@+id/show"
android:text="Save HashMap in Singleton"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
উপরের কোডে একটি বাটন নেওয়া হয়েছে। ব্যবহারকারী শো বাটনে ক্লিক করলে HashMap সিঙ্গলটনে সংরক্ষিত হবে।
ধাপ ৩: MainActivity.java-এ লজিক বাস্তবায়ন করুন
package com.example.andy.myapplication;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;
import org.json.JSONException;
import org.json.JSONObject;
public class MainActivity extends AppCompatActivity {
Button show;
JSONObject jsonObject;
SingleTonExample singletonExample;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
show = findViewById(R.id.show);
singletonExample = SingleTonExample.getInstance();
singletonExample.init(getApplicationContext());
show.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
singletonExample.put("paper", 10.0);
singletonExample.put("recharge", 10.0);
singletonExample.put("other bills", 10.0);
Toast.makeText(MainActivity.this, singletonExample.getHashMap(), Toast.LENGTH_LONG).show();
}
});
}
}
ধাপ ৪: SingleTonExample.java ক্লাস তৈরি করুন
package com.example.andy.myapplication;
import android.content.Context;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
import java.util.Map;
public class SingleTonExample {
private static final SingleTonExample ourInstance = new SingleTonExample();
private Map<String, Double> map = new HashMap<>();
private Context appContext;
private SingleTonExample() { }
public static Context get() {
return getInstance().getContext();
}
public static synchronized SingleTonExample getInstance() {
return ourInstance;
}
public void init(Context context) {
if (appContext == null) {
this.appContext = context;
}
}
private Context getContext() {
return appContext;
}
public void put(String key, double value) {
map.put(key, value);
}
public String getHashMap() {
return String.valueOf(Collections.singletonList(Arrays.asList(map)));
}
}
কিভাবে কাজ করে
- Private constructor - বাইরের থেকে ইনস্ট্যান্স তৈরি করা বাধা দেয়
- Static getInstance() - একমাত্র ইনস্ট্যান্স প্রদান করে (Thread-safe)
- HashMap - কী-ভ্যালু জোড়া সংরক্ষণ করে
- Global Context - অ্যাপ্লিকেশন কনটেক্সট সংরক্ষণ করে Toast দেখানোর জন্য
অ্যাপ্লিকেশন চালান
আপনার অ্যান্ড্রয়েড ডিভাইস কম্পিউটারের সাথে সংযুক্ত করুন। Android Studio-তে প্রজেক্টের অ্যাক্টিভিটি ফাইল খুলুন এবং টুলবার থেকে Run আইকনে ক্লিক করুন। আপনার মোবাইল ডিভাইস নির্বাচন করুন এবং আউটপুট দেখুন।

উপরের বাটনে ক্লিক করলে, HashMap মানগুলো সংরক্ষিত হবে এবং Toast-এ মানগুলো দেখাবে:
