একটি উদাহরণে যাওয়ার আগে, আমাদের জানা উচিত সিঙ্গলটন ডিজাইন প্যাটার্ন কী। একটি সিঙ্গেলটন হল একটি ডিজাইন প্যাটার্ন যা একটি ক্লাসের ইনস্ট্যান্টেশনকে শুধুমাত্র একটি উদাহরণে সীমাবদ্ধ করে। উল্লেখযোগ্য ব্যবহারগুলির মধ্যে রয়েছে কনকারেন্সি নিয়ন্ত্রণ করা এবং কোনও অ্যাপ্লিকেশনের ডেটা স্টোর অ্যাক্সেস করার জন্য অ্যাক্সেসের একটি কেন্দ্রীয় পয়েন্ট তৈরি করা৷
এই উদাহরণটি দেখায় কিভাবে android-এ Singleton এ Hashmap সংরক্ষণ করতে হয়
ধাপ 1 − অ্যান্ড্রয়েড স্টুডিওতে একটি নতুন প্রকল্প তৈরি করুন, ফাইল ⇒ নতুন প্রকল্পে যান এবং একটি নতুন প্রকল্প তৈরি করতে সমস্ত প্রয়োজনীয় বিবরণ পূরণ করুন৷
ধাপ 2 − 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 singleTone" android:layout_width = "wrap_content" android:layout_height = "wrap_content" /> </LinearLayout>
উপরের কোডে, আমরা একটি বোতাম নিয়েছি। ব্যবহারকারী শো বোতামে ক্লিক করলে, এটি একটি সিঙ্গলটনে হ্যাশম্যাপ সংরক্ষণ করবে।
ধাপ 3 − 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.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 ব্যবহার করেছি singleton ক্লাস হিসেবে তাই 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<String, Double>(); 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 string, double d) { map.put(string,d); } public String getHashMap() { return String.valueOf(Collections.singletonList(Arrays.asList(map))); } }
আপনার অ্যাপ্লিকেশন চালানোর চেষ্টা করা যাক. আমি ধরে নিচ্ছি আপনি আপনার কম্পিউটারের সাথে আপনার আসল অ্যান্ড্রয়েড মোবাইল ডিভাইসটি সংযুক্ত করেছেন৷ অ্যান্ড্রয়েড স্টুডিও থেকে অ্যাপটি চালাতে, আপনার প্রোজেক্টের অ্যাক্টিভিটি ফাইলগুলির একটি খুলুন এবং টুলবার থেকে রান play.jpg আইকনে ক্লিক করুন। একটি বিকল্প হিসাবে আপনার মোবাইল ডিভাইস নির্বাচন করুন এবং তারপরে আপনার মোবাইল ডিভাইসটি পরীক্ষা করুন যা আপনার ডিফল্ট স্ক্রীন প্রদর্শন করবে –
এখন উপরের বোতামে ক্লিক করুন, এটি হ্যাশ মানচিত্রের মান সংরক্ষণ করবে এবং নীচে দেখানো টোস্ট থেকে মান প্রদর্শন করবে –