আজকের পর্বে আমরা SharedPreferences ইন্টারফেস এর সেটিংস্ সম্পূর্ণ করব। গত পর্বে আমরা onClick মেথডে প্রয়োজনীয় মেথডগুলো সেট করেছিলাম। আজকের পর্বে আমরা অন্যান্য মেথডগুলিও সেট করব।প্রথমেই আমরা SavePref এর প্রথম মেথডটিতে SharedPreferences ইন্টারফেসের অধীনে একটি অবজেক্ট ডিক্লিয়ার করে দিব। যেখানে অবজেক্টটিকে PreferenceManager.getDefaultSharedPreferences(this); এভাবে ডিক্লিয়ার করতে দিতে হবে। তারপর Editor এর অধীনে edit নামে অবজেক্ট ডিক্লিয়ার করে দিতে হবে, যা inputText এডিট করতে সহায়তা করবে। অনুরুপভাবে putBoolean() এবং commit() মেথড দুটিকেও এর নিচে সেট করে দিতে হবে।
package com.code.android20; import android.os.Bundle; import android.preference.PreferenceManager; import android.view.View; import android.view.View.OnClickListener; import android.widget.Button; import android.widget.CheckBox; import android.widget.EditText; import android.app.Activity; import android.content.SharedPreferences; import android.content.SharedPreferences.Editor; public class MainActivity extends Activity implements OnClickListener { CheckBox cb; EditText et; Button bsve; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); cb = (CheckBox) findViewById(R.id.checkBox1); et = (EditText) findViewById(R.id.editText1); bsve = (Button) findViewById(R.id.button1); bsve.setOnClickListener(this); LoadPref(); } public void LoadPref() { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); boolean ckValue = sp.getBoolean("checkbox", false); String name = sp.getString("Name", "Your text here"); if(ckValue) { cb.setChecked(true); } else { cb.setChecked(false); } et.setText(name); } public void SavePref(String key, boolean value ) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); Editor edit = sp.edit(); edit.putBoolean(key, value); edit.commit(); } public void SavePref(String key, String value) { SharedPreferences sp = PreferenceManager.getDefaultSharedPreferences(this); Editor edit = sp.edit(); edit.putString(key, value); edit.commit(); } @Override public void onClick(View arg0) { SavePref("checkbox", cb.isChecked()); if(cb.isChecked()) SavePref("Name", et.getText().toString()); finish(); } }
তারপর আমরা যাব দ্বিতীয় SavePref মেথডে। এখানে সেটিংস্গুলো আগের মেথডের সেটিংস্ এর মতই থাকবে শুধু মেথড putBoolean এর বদলে putString টি দিয়ে দিতে হবে।
তারপর আমরা যাব LoadPref মেথডে। LoadPref মেথডটি আপ্লিকেশনটি রান হওয়ার সময় কীরূপে থাকবে তা নির্ধারণ করে দিবে। যেমন boolean ckValue এর অধীনে sp.getBoolean("checkbox", false); এভাবে ডিক্লিয়ার করে দেয়া হয়েছে, যেখানে checkbox টির নাম দেয়া হয়েছে checkbox এবং তা initially false করে দেয়া হয়েছে।
অনুরুপভাবে যেই String এর মানটি আমরা ইনপুট নিব তাকেও sp.getString("Name", "Your text here"); এভাবে ডিক্লিয়ার করে দেয়া হয়েছে, যেখানে Name হচ্ছে key value আর অপরটি হচ্ছে editText এর hint Text।এখানে কন্ডিশন হিসেবে checkbox টি চেক হচ্ছে কিনা তা CheckBox এর অধীনে ডিক্লিয়ার করা অবজেক্ট দ্বারা চেক করা হচ্ছে।এবং টেক্সটি সেট করার জন্য EditText এর অধীনে ডিক্লিয়ার করা অবজেক্ট et দ্বারা et.setText(name); এভাবে ডিক্লিয়ার করে দেয়া হয়েছে।এখন LoadPref(); মেথডটিকে Oncreate মেথডের মধ্যে ডিক্লিয়ার করে দিতে হবে। এবং ডাটা ইনপুট দেয়ার পর অ্যাপটি close হওয়ার জন্য onClick মেথডের ভিতরে finish(); মেথডটি সেট করে দিতে হবে।
এখন অ্যাপটি রান করলে ইনপুট ফিল্ডএ ডাটা ইনপুট দেয়ার পর তা আবার সেভ বাটন দিয়ে সেভ করলে অ্যাপটি close হয়ে যাবে, অ্যাপটি পুনরায় যদি ওপেন করা হয়, তাহলে দেখা যাবে যে ডাটা আগে ইনপুট দেয়া হয়েছিল তা সেভ হয়ে আছে।
এইছিল SharedPreferences ইন্টারফেস এর সেটিংস্ সম্পর্কে আজকের এই আলোচনা।
এন্ড্রয়েড ডেভেলপমেন্ট এর সর্বশেষ পর্ব সম্পর্কে নোটিফিকেশান পেতে লাইক করুন ফেসবুকের এই পেইজে এ।
আমি নাঈম হায়দার ঋদ্ধি। বিশ্বের সর্ববৃহৎ বিজ্ঞান ও প্রযুক্তির সৌশল নেটওয়ার্ক - টেকটিউনস এ আমি 11 বছর 11 মাস যাবৎ যুক্ত আছি। টেকটিউনস আমি এ পর্যন্ত 76 টি টিউন ও 44 টি টিউমেন্ট করেছি। টেকটিউনসে আমার 6 ফলোয়ার আছে এবং আমি টেকটিউনসে 0 টিউনারকে ফলো করি।
Computer ও Programming পছন্দ, আমার youtube channel https://www.youtube.com/channel/UCYKbAf2kXLgKav30hd3zDPQ . আমার ফেসবুক প্রোফাইল https://www.facebook.com/nayeem.riddhi