Android: как получить список всех настроек xml для моего приложения и прочитать их?

как получить список всех настроек приложения для приложения,

1. I am saving shared preference in this mannerActivity to save key value pair in desired preference xml

2. I know that they are in data/data/app_packagename/shared_prefs Preference Xml's shared_pref folder


3. THE PROBLEM: But how to get list of all preference xml files in a spinner enter image description here

и прочитал каждое предпочтение, я искал в SO , но я не нашел никакой помощи относительно этого, как читать все XML-файлы предпочтений в моем каталоге приложений и получить доступ к настройкам?

P.S: I am aware of SharedPreference.getAll();, will be enough to read once i get the file?

Я написал в битах (Rough Code), он дает ошибку при попытке запуска, вот реализованный метод

void getList()
{
  //will be invoked from onCreate to populate spinner,yes spinner is already binded
   PackageManager m = getPackageManager();
        String s = getPackageName();
        try {
            PackageInfo p = m.getPackageInfo(s, 0);
            s = p.applicationInfo.dataDir;
        } catch (NameNotFoundException e) {
            Log.w("yourtag", "Error Package name not found ", e);
        }
        Log.i("dir", s=s+"/shared_prefs");
     //is this write way, how to proceed from here
}
5
nl ja de

3 ответы

Попробуй это

    File prefsdir = new File(getApplicationInfo().dataDir,"shared_prefs");

    if(prefsdir.exists() && prefsdir.isDirectory()){
        String[] list = prefsdir.list();
        ArrayAdapter adapter = new ArrayAdapter(this, android.R.layout.simple_expandable_list_item_1, android.R.id.text1,list);
        Spinner sp = (Spinner) findViewById(R.id.spinner1);
        sp.setAdapter(adapter);

    }

// Чтобы получить выбранный элемент

String item = (String) sp.getSelectedItem();
    //remove .xml from the file name
    String preffile = item.substring(0, item.length()-4);

    SharedPreferences sp2 = getSharedPreferences(preffile, MODE_PRIVATE);
    Map
19
добавлено
@Androrider Это не часть публичного api, поэтому в будущих выпусках не гарантируется то же самое, но все предыдущие выпуски имеют эту папку
добавлено автор nandeesh, источник
ответ - это то, что я искал, спасибо!
добавлено автор Akhil Jain, источник
Является ли «shared_prefs» гарантированным всегда имя каталога, содержащего файлы общих настроек?
добавлено автор Androrider, источник
public class Preferences extends PreferenceActivity {

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

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

Затем в вашем основном классе вы можете ссылаться на настройки

public class DrinkingBuddy extends Activity 
                           implements OnSharedPreferenceChangeListener {

    private int weight;

    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

       //register preference change listener
        prefs.registerOnSharedPreferenceChangeListener(this);

       //and set remembered preferences
        weight = Integer.parseInt((prefs.getString("weightPref", "120");
       //etc
    }

   //handle updates to preferences
    public void onSharedPreferenceChanged(SharedPreferences prefs, String key) {
        if (key.equals("weightValues")) {
            weight = Integer.parseInt((prefs.getString("weightPref", "120");
        }
       //etc
    }
}

Сохранение обновлений настроек выполняется для вас.

(Не слишком уверен в публичных/частных декларациях!).

2
добавлено
никоим образом не отвечает на мой вопрос
добавлено автор Akhil Jain, источник

Если вы хотите использовать отражение, существует функция @hide Context # getSharedPrefsFile (имя строки)

Так вы бы позвонили

Контекст # getSharedPrefsFile (имя строки) .getParentFile (), чтобы получить ссылку на файл shared_prefs

1
добавлено
Mobile Dev Jobs — вакансии и аналитика
Mobile Dev Jobs — вакансии и аналитика
6 187 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению iOS, Android, Xamarin и т.д. ВАЖНО: Правила публикации и правила канала: Ссылка – https://telegra.ph/Pravila-oformleniya-vakansij-i-rezyume-11-09-2

Android Developers
Android Developers
4 476 участник(ов)

Общаемся на темы, посвященным Android-разработке, SDK, Kotlin, Realm и т.д.

Android Architecture
Android Architecture
2 186 участник(ов)

Русскоязычный чат по архитектуре в андроид приложениях. Подробнее: http://telegra.ph/Android-Architecture-12-24

rus-speaking/android
rus-speaking/android
1 705 участник(ов)

Основной чат по Android разработке (вопрос-ответ). ПРАВИЛА: bit.ly/andr-rules. NEWS: bit.ly/AnrdResId ЧАТЫ: Основной: bit.ly/andr-main IDE, сборка, Git, сервисы: bit.ly/andr-tools Оффтоп: bit.ly/andr-offtop Конференции, события: bit.ly/andr-events Вакансии, найм: bit.ly/andr-job Архитектура: bit.ly/andr-patterns Rx: bit.ly/andr-rx Тестирование: bit.ly/andr-test Kotlin: bit.ly/andr-kotlin Хаmarin: bit.ly/andr-xamarin За мат, спам, агрессию, предложения о работе, оффтоп в этом канале - бан на сутки и более ☢☢☢

Android Dev Подкаст
Android Dev Подкаст
1 325 участник(ов)

Комната для обсуждения Android Dev подкаста apptractor.ru/AndroidDev/ Общее обсуждение Android: https://t.me/android_ru Остальные чаты про Android: http://t.me/devChats Наши новости https://t.me/androiddevpodcast_news

Android Guards
Android Guards
602 участник(ов)

Обсуждение любых вопросов касающихся безопасности Android. - Защита системы и приложений - Уязвимости и эксплойты - Вредоносное ПО - Копание в кишках системы и приложений (RE)

Android JOB
Android JOB
466 участник(ов)

Публикуем вакансии и запросы на поиск работы по направлению Android (full-time, part-time, remote и разовые подработки)

AndroidDev :: Разработка. It's Android time now!
AndroidDev :: Разработка. It's Android time now!
458 участник(ов)

It's Android time now! Чат разработчиков Android. Вакансии, резюме и информацию о митапах размещать можно. Публикацию скрытой и явной рекламы ваших каналов и сайтов после получения разрешения от @olegushakov

Aandroid Talks!
Aandroid Talks!
212 участник(ов)

Чат об общих вопросах по ОС Android. Чат для разработки под андроид - pro.android: https://t.me/joinchat/AAAAAEKIFKnmRT9cMebb9w

Android Rus
Android Rus
68 участник(ов)