এখানে বর্ণিত হিসাবে , আমি পছন্দের ফ্রেমটি সাবক্লাসিং করছি এবং এটি একটি ক্রিয়াকলাপের মধ্যে প্রদর্শিত করছি। সেই দস্তাবেজটি এখানে কীভাবে অগ্রাধিকার পরিবর্তনের জন্য শোনার তা ব্যাখ্যা করে তবে কেবলমাত্র আপনি সাবক্লাস পছন্দঅ্যাক্টিভিটি। যেহেতু আমি এটি করছি না, তাই আমি কীভাবে পছন্দগুলি পরিবর্তনের জন্য শুনব?
আমি আমার পছন্দের ফ্রেমে OnSharedPreferencesChangeListener বাস্তবায়নের চেষ্টা করেছি কিন্তু এটি কাজ করে বলে মনে হয় না ( onSharedPreferenceChanged
কখনই ডাকা হবে বলে মনে হয় না)।
এটি এখন পর্যন্ত আমার কোড:
সেটিংসঅ্যাক্টিভিটি.জভা
public class SettingsActivity extends Activity
{
@Override
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Display the fragment as the main content.
getFragmentManager().beginTransaction().replace(android.R.id.content, new SettingsFragment()).commit();
}
}
সেটিংসফ্রেগমেন্ট.জভা
public class SettingsFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener
{
public static final String KEY_PREF_EXERCISES = "pref_number_of_exercises";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
addPreferencesFromResource(R.xml.preferences);
}
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key)
{
//IT NEVER GETS IN HERE!
if (key.equals(KEY_PREF_EXERCISES))
{
// Set summary to be the user-description for the selected value
Preference exercisesPref = findPreference(key);
exercisesPref.setSummary(sharedPreferences.getString(key, ""));
}
}
}
ferences.xml
<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
<EditTextPreference
android:defaultValue="15"
android:enabled="true"
android:key="pref_number_of_exercises"
android:numeric="integer"
android:title="Number of exercises" />
</PreferenceScreen>
এছাড়াও, অগ্রাধিকারের পরিবর্তনগুলি শোনার জন্য এমনকি অগ্রাধিকারের স্থানটি কি সঠিক জায়গা বা ক্রিয়াকলাপের মধ্যে আমার করা উচিত?