сохранить файл свойств приложений для Android - PullRequest
0 голосов
/ 22 марта 2012

У меня проблема с сохранением файла свойств в Android, это код:

Properties prop = new Properties();
prop.load(context.getResources().openRawResource(R.raw.config));

Utils.log(context,"db.version =>"+ prop.get("db.version"));

prop.setProperty("db.version", "2");
String fileName = context.getResources().getString(R.raw.config);
FileOutputStream fos = new  FileOutputStream(fileName);
prop.store(fos, "");

, когда я пытаюсь загрузить (и распечатать), нет проблем, но когда я пытаюсь сохранитьмой новый набор, я получаю FileNotFoundException

здесь LogCat:

03-22 18:05:03.262: INFO(11536): db.version =>1
03-22 18:05:03.262: ERROR(11536): java.io.FileNotFoundException: /res/raw/config.properties (No such file or directory)

заранее спасибо ...

Ответы [ 2 ]

2 голосов
/ 23 марта 2012

Я уже прочитал, что мне предлагают azertiti, но я подумал, что есть более простой способ управления парой ключ-значение

, однако сначала я использовал SharedPreferences

, я создалXML-файл свойств в res / xml / conf.xml

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">

    <PreferenceCategory
        android:title="My preference"
        android:key="preference">

        <CheckBoxPreference
            android:key="pwd_request"
            android:defaultValue="true"
        />

    </PreferenceCategory>        
</PreferenceScreen>

после того, как я вызвал (в классе активности) методы для чтения / записи значения свойства:

//read...
PreferenceManager.setDefaultValues(this, R.xml.conf, true);
userProps = PreferenceManager.getDefaultSharedPreferences(this);
Utils.log(this, userProps.getBoolean("pwd_request", false));
//...and write
edit.putBoolean("pwd_request", false);
edit.commit();

по моему мнению:я не знаю, является ли то, что я написал, правильным способом сделать это, но я думаю, что это не хорошая архитектура Android для управления полями свойств, это слияние традиционных свойств Java и метод управления пользовательским интерфейсом .... Почему я должен объявить свое свойство CheckBoxPreference ?? .. это просто свойство.

0 голосов
/ 22 марта 2012

Вы пытаетесь записать в файл часть .apk.Вы ничего не можете обновить из apk вашего приложения во время выполнения.

Чтение в порядке, и поэтому у вас нет проблем там.Если вы хотите сохранить некоторые настройки, возможно, захотите проверить это: http://developer.android.com/guide/topics/data/data-storage.html#pref

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...