2011-09-14 12 views
0

私は自分のアプリケーションでSharedPreferencesを使用しようとしています。私はちょうどそれを使用し始めているので少しhepが必要です。私がしたいことは基本的には次のとおりです。 2番目のアクティビティ私はリストビューを持っているアイテムをクリックして私はputInt();を使ってテキストを送信します。新しいアクティビティでは、adroidシステムのsharedpreferenceを追加するボタンがあります。そして最後に、私はここで活動番号3SharedPreferences Androidの問題

で異なるテキストを表示する2番目のアクティビティに送られたIDに応じて、少しのコードです:

主な活動:

SharedPreferences faves = PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     SharedPreferences.Editor editor = faves.edit(); 
     editor.putInt("favorites",0); 
     editor.commit(); 

第二アクティビティ:

私はテキストがクリックされた項目に依存示したい
SharedPreferences favs= PreferenceManager.getDefaultSharedPreferences(getApplicationContext()); 
     final SharedPreferences.Editor editor = favs.edit(); 

第三の活動:

favs.setOnClickListener(new View.OnClickListener() { 

      @Override 
      public void onClick(View arg0) { 
       editor.putInt("favorites", getIntent().getIntExtra("id", 0)); 
      } 
     }); 

これを修正する方法はありますか?

+0

なぜエディターにファイナルがマークされていますか? – Rich

答えて

0

SharedPreferenceオブジェクトを実際に作成する必要はありません.Apple Activity.getSharedPreference(name、mode)がそれを行います。

基本的には、アプリケーションの独自のフォルダの下にxmlファイルを作成し、put ...()を実行するとxmlに項目が追加され、後で更新して読むことができます。正しい名前。

グローバルエディタをお持ちでないと、データが失われることがありますので、sharedPreferenceを読み書きするたびにエディタを入手してください。

0

まず、質問を理解するのが難しいです。このコード例では、メインアクティビティと第3アクティビティに値を格納しようとしていますが、値を読み取ることはできません。最後に、あなたは "どのようにそれを修正するための提案?"と尋ねる。 「それ」は何を表していますか?間違いや期待していない結果が出ていますか?私が使用するサンプルコードをいくつか紹介します。私は私のアプリの他の部分で再利用するいくつかの値を持つ静的な定数クラスを持っていますが、あなたはそのアイデアを得る。

ApplicationContext context = ApplicationContext.getInstance(); //I use a custom app context but any context will do. 
SharedPreferences prefs = context.getSharedPreferences(
Constants.PREFS_FILE_NAME, Activity.MODE_PRIVATE); 
prefs.getString("favorites", null);//or any other getter you want to use 
関連する問題