বাংলায় অ্যান্ড্রয়েড সহায়িকা - Bangla Android Guide

একটি প্রিফারেন্স একটিভিটি বাস্তবায়ন

যেহেতু আপনি উপরে একটি মেনিফেস্টের বর্ননা দেখতে পারেন, নমুনা অ্যাপের একটিভিটি SettingsActivity এর ACTION_MANAGE_NETWORK_USAGE একশনের জন্য একটি ইনটেন্ট আছে। SettingsActivity হচ্ছে PreferenceActivity এর একটি সাব-ক্লাস। এটা একটি প্রিফারেন্স স্ক্রিন প্রদর্শন করে (ফিগার ১ এ দেখানো হয়েছে) যা ইউজারকে নীচের বিষয়গুলো নির্দিষ্ট করতে দেয়:

  • প্রতিটা XML ফিড এন্ট্রির জন্য সার সংক্ষেপ প্রদর্শন করতে হবে কিনা অথবা প্রতিটা এন্ট্রির জন্য শুধু একটি লিংক।

  • যদি কোন নেটওয়ার্ক কানেকশন থেকে থাকে XML ফিড ডাউনলোড করতে হবে কিনা অথবা যদি শুধুমাত্র ওয়াই-ফাই বিদ্যমান থেকে থাকে।

kl kl

ফিগার ১.প্রিফারেন্স একটিভিটি এটা হচ্ছে SettingsActivity । উল্লেখ্য যে এটা OnSharedPreferenceChangeListener বাস্তবায়ন করে। যখন একজন ইউজার একটি প্রিফারেন্স পরিবর্তন করেন, এটা onSharedPreferenceChanged()বন্ধ করে দেয়, যেটা refreshDisplay সেট করে। এটা রিফ্রেশ করার জন্য প্রদর্শন করার কারন ঘটায় যখন ইউজার প্রধান একটিভিটিতে ফিরে আসবেন: public class SettingsActivity extends PreferenceActivity implements OnSharedPreferenceChangeListener {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        // Loads the XML preferences file
        addPreferencesFromResource(R.xml.preferences);
    }

    @Override
    protected void onResume() {
        super.onResume();

        // Registers a listener whenever a key changes
        getPreferenceScreen().getSharedPreferences().registerOnSharedPreferenceChangeListener(this);
    }

    @Override
    protected void onPause() {
        super.onPause();

       // Unregisters the listener set in onResume().
       // It's best practice to unregister listeners when your app isn't using them to cut down on
       // unnecessary system overhead. You do this in onPause().
       getPreferenceScreen().getSharedPreferences().unregisterOnSharedPreferenceChangeListener(this);
    }

    // When the user changes the preferences selection,
    // onSharedPreferenceChanged() restarts the main activity as a new
    // task. Sets the refreshDisplay flag to "true" to indicate that
    // the main activity should update its display.
    // The main activity queries the PreferenceManager to get the latest settings.

    @Override
    public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
        // Sets refreshDisplay to true so that when the user returns to the main
        // activity, the display refreshes to reflect the new settings.
        NetworkActivity.refreshDisplay = true;
    }
}