উদাহরণের আগে জানা দরকার সিঙ্গলটন ডিজাইন প্যাটার্ন কী। সিঙ্গলটন হলো একটি ডিজাইন প্যাটার্ন যা একটি ক্লাসের ইনস্ট্যানশনকে শুধু একটি ইন্সট্যান্সে সীমাবদ্ধ করে। উল্লেখযোগ্য ব্যবহারগুলোর মধ্যে রয়েছে কনকারেন্সি নিয়ন্ত্রণ এবং অ্যাপ্লিকেশনের ডেটা স্টোর অ্যাক্সেস করার জন্য একটি কেন্দ্রীয় পয়েন্ট তৈরি করা।
এই উদাহরণটি দেখায় কীভাবে অ্যান্ড্রয়েডে গ্লোবাল কনটেক্সট সহ অ্যারে সিঙ্গলটনে সংরক্ষণ করা যায়।
প্রয়োজনীয় ধাপসমূহ
ধাপ ১: নতুন প্রজেক্ট তৈরি করুন
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 Array in Singleton"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
উপরের কোডে একটি বাটন নেওয়া হয়েছে। ব্যবহারকারী শো বাটনে ক্লিক করলে Toast-এ অ্যারে মানগুলো দেখাবে।
ধাপ ৩: 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;
public class MainActivity extends AppCompatActivity {
Button show;
int[] i1 = new int[] { 33, 12, 98 };
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.storeArray(i1);
Toast.makeText(
SingleTonExample.get(),
singletonExample.getArray(),
Toast.LENGTH_LONG
).show();
}
});
}
}
ধাপ ৪: SingleTonExample.java ক্লাস তৈরি করুন
package com.example.andy.myapplication;
import android.app.Dialog;
import android.content.Context;
import android.view.Window;
import java.util.Arrays;
public class SingleTonExample {
private Context appContext;
private Dialog dialog;
int[] i1;
private static final SingleTonExample ourInstance = new SingleTonExample();
public void init(Context context) {
if (appContext == null) {
this.appContext = context;
}
}
private Context getContext() {
return appContext;
}
public static Context get() {
return getInstance().getContext();
}
public static synchronized SingleTonExample getInstance() {
return ourInstance;
}
private SingleTonExample() { }
public void show(Context context) {
if (dialog != null && dialog.isShowing()) {
return;
}
dialog = new Dialog(context);
dialog.requestWindowFeature(Window.FEATURE_NO_TITLE);
dialog.setContentView(R.layout.layout_progress_dialog);
dialog.setCancelable(true);
dialog.show();
}
public void dismiss() {
if (dialog != null && dialog.isShowing()) {
dialog.dismiss();
}
}
public void storeArray(int[] array) {
this.i1 = array;
}
public String getArray() {
return Arrays.toString(i1);
}
}
গ্লোবাল কনটেক্সটের সুবিধা
- Toast, Dialog, ইত্যাদি দেখানোর জন্য Activity রেফারেন্স পাস করতে হয় না
SingleTonExample.get()কল করে যেকোনো জায়গা থেকে কনটেক্সট পাওয়া যায়- মেমরি লিক এড়াতে Application Context ব্যবহার করা হয়েছে
অ্যাপ্লিকেশন চালান
আপনার অ্যান্ড্রয়েড ডিভাইস কম্পিউটারের সাথে সংযুক্ত করুন। Android Studio-তে প্রজেক্টের অ্যাক্টিভিটি ফাইল খুলুন এবং টুলবার থেকে Run আইকনে ক্লিক করুন। আপনার মোবাইল ডিভাইস নির্বাচন করুন এবং আউটপুট দেখুন।

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