Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package com.basic.mileagecalculatorwithsettings;
- import android.annotation.TargetApi;
- import android.content.Context;
- import android.content.SharedPreferences.Editor;
- import android.content.res.Configuration;
- import android.media.Ringtone;
- import android.media.RingtoneManager;
- import android.net.Uri;
- import android.os.Build;
- import android.os.Bundle;
- import android.preference.ListPreference;
- import android.preference.Preference;
- import android.preference.PreferenceActivity;
- import android.preference.PreferenceCategory;
- import android.preference.PreferenceFragment;
- import android.preference.PreferenceManager;
- import android.preference.RingtonePreference;
- import android.text.TextUtils;
- import android.view.MenuItem;
- import android.support.v4.app.NavUtils;
- import java.util.List;
- public class SettingsActivity extends PreferenceActivity
- {
- private static final boolean ALWAYS_SIMPLE_PREFS = false;
- @Override
- protected void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- setupActionBar();
- }
- @TargetApi(Build.VERSION_CODES.HONEYCOMB)
- private void setupActionBar()
- {
- if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB)
- {
- getActionBar().setDisplayHomeAsUpEnabled(true);
- }
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item)
- {
- switch (item.getItemId())
- {
- case android.R.id.home:
- NavUtils.navigateUpFromSameTask(this);
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
- @Override
- protected void onPostCreate(Bundle savedInstanceState)
- {
- super.onPostCreate(savedInstanceState);
- setupSimplePreferencesScreen();
- }
- private void setupSimplePreferencesScreen() {
- if (!isSimplePreferences(this)) {
- return;
- }
- addPreferencesFromResource(R.xml.pref_general);}
- @Override
- public boolean onIsMultiPane()
- {
- return isXLargeTablet(this) && !isSimplePreferences(this);
- }
- private static boolean isXLargeTablet(Context context)
- {
- return (context.getResources().getConfiguration().screenLayout & Configuration.SCREENLAYOUT_SIZE_MASK) >= Configuration.SCREENLAYOUT_SIZE_XLARGE;
- }
- private static boolean isSimplePreferences(Context context)
- {
- return ALWAYS_SIMPLE_PREFS
- || Build.VERSION.SDK_INT < Build.VERSION_CODES.HONEYCOMB
- || !isXLargeTablet(context);
- }
- @Override
- @TargetApi(Build.VERSION_CODES.HONEYCOMB)
- public void onBuildHeaders(List<Header> target)
- {
- if (!isSimplePreferences(this))
- {
- //loadHeadersFromResource(R.xml.pref_headers, target);
- }
- }
- private static Preference.OnPreferenceChangeListener sBindPreferenceSummaryToValueListener = new Preference.OnPreferenceChangeListener() {
- @Override
- public boolean onPreferenceChange(Preference preference, Object value)
- {
- String stringValue = value.toString();
- if (preference instanceof ListPreference)
- {
- ListPreference listPreference = (ListPreference) preference;
- int index = listPreference.findIndexOfValue(stringValue);
- preference.setSummary(index >= 0 ? listPreference.getEntries()[index]:null);
- }
- else if (preference instanceof RingtonePreference)
- {
- if (TextUtils.isEmpty(stringValue))
- {
- //preference.setSummary(R.string.pref_ringtone_silent);
- }
- else
- {
- Ringtone ringtone = RingtoneManager.getRingtone(
- preference.getContext(), Uri.parse(stringValue));
- if (ringtone == null)
- {preference.setSummary(null);}
- else
- {
- String name = ringtone.getTitle(preference.getContext());
- preference.setSummary(name);
- }
- }
- }
- else
- {
- preference.setSummary(stringValue);
- }
- return true;
- }
- };
- private static void bindPreferenceSummaryToValue(Preference preference)
- {
- preference.setOnPreferenceChangeListener(sBindPreferenceSummaryToValueListener);
- sBindPreferenceSummaryToValueListener.onPreferenceChange(preference,PreferenceManager.getDefaultSharedPreferences(preference.getContext()).getString(preference.getKey(),""));
- }
- @TargetApi(Build.VERSION_CODES.HONEYCOMB)
- public static class GeneralPreferenceFragment extends PreferenceFragment
- {
- @Override
- public void onCreate(Bundle savedInstanceState)
- {
- super.onCreate(savedInstanceState);
- addPreferencesFromResource(R.xml.pref_general);
- bindPreferenceSummaryToValue(findPreference("example_list"));
- bindPreferenceSummaryToValue(findPreference("fuel_type"));
- bindPreferenceSummaryToValue(findPreference("unit_type"));
- }
- public void onPause()
- {
- super.onPause();
- addPreferencesFromResource(R.xml.pref_general);
- bindPreferenceSummaryToValue(findPreference("unit_type"));
- }
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment