2011-03-02 15 views
20

プリファレンスで私の最初の試みはPreferenceActivityの知識なしでした。だから私はすべてのユーザーの設定を特定の設定ファイルに保存するアプリケーションを持っています。PreferenceActivityはどのようにカスタムプリファレンスファイルを使用できますか

私はPreferenceActivityを使用して移行したいと思っていますが、自分の好みを維持したいと思っています。

私のPreferenceActivityにその特定のファイルをすべての環境設定に使用するよう指示する方法はありますか?

+0

古い設定を読み込んで通常の設定として保存する方法を書くことができます – Maaalte

+0

私は1つの解決策として移行について考えました。しかし、私は決して移行コードを取り除くことはできませんか?私のアプリの古いバージョンがないことを保証する方法はありません。 – Yashima

答えて

1

アプリの冒頭ですべてのプリファレンスを読み、[

Editor e = PreferenceManager.getDefaultSharedPreferences(getBaseContext()).edit(); 
e.putBoolean("yourPreference", true); 
e.putString("yourOtherPreference", "This is the Value"); 
... 
e.commit(); 

を使用してPreferencesでそれらを格納することができ、私はそれが

+0

私は最初にAndrewのファイルアイデアの名前を変更することを好みましたが、この変種を実装しました。私は決して後者を行う方法を見つけたことはありませんでしたので、私は明らかに固執しました。ありがとう! – Yashima

+0

良い、私は喜んで助けた! – raukodraug

0

Maaalteはあなたが何をしたいのか、正しいですが役に立てば幸いonCreateカスタムファイルの存在をテストし、そのファイルが存在する場合は標準の共有プリファレンスファイル名に変更します。

もう1つの方法は、古いプリファレンスを1つずつ読み込んで、共有プリファレンスAPIを使用してそれらを読み込んだ後、古いプリファレンスを削除することです。

63

これを投稿するには遅すぎるかもしれないが、あなたはここであなたが事前にこのようなデフォルトの共有設定ファイルの名前を設定し

素敵な解決策を見つけることができます。

public class MyPreferencesActivity extends PreferenceActivity { 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 

     PreferenceManager prefMgr = getPreferenceManager(); 
     prefMgr.setSharedPreferencesName("my_preferences"); 
     prefMgr.setSharedPreferencesMode(MODE_WORLD_READABLE); 

     addPreferencesFromResource(R.xml.preferences); 
    } 
} 

私はこれが誰かを助けてくれることを願っています。

よろしくお願いいたします。

+4

ニースの回答(廃止予定ですが...)リンクが壊れたために編集され、コードをリンクからコピーしました。 IMHOでも、MODE_WORLD_READABLEを使用するのは間違いです。 –

関連する問題