1

関数を実行する前にアクティビティが開始されたときに、共有設定を編集するアクティビティを作成しています。私は立ち往生していて、方法がわかりません。私のアプリは、アプリを閉じるか、別のアクティビティに戻ったときにのみ、共有設定を編集します。関数を実行せずにアクティビティが開始されたときにそれらを編集したい、つまりcheckpreferences(); .アクティビティの開始時に共有設定を編集するにはどうすればよいですか?

public class MyActivity extends Activity {

private SharedPreferences app_preferences;

@Override
public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);
  setContentView(R.layout.main);

  // Get the app's shared preferences
  app_preferences = PreferenceManager.getDefaultSharedPreferences(this);

  final int id = 42;

  int idd = app_preferences.getInt("idd", 0);
  // I am Stuck in this part
  SharedPreferences.Editor editor = app_preferences.edit();  
    editor.putInt("idd", 43);
    editor.commit(); // Very important

  final int iddd = idd;
  checkpreferences(id, iddd);

        }

private void checkpreferences(int di, int dii) {
      if(di == dii) {
        Toast.makeText(AudioActivity.this,"id is same"+dii+"="+di , Toast.LENGTH_SHORT).show();
      }else{

            Toast.makeText(AudioActivity.this,"id is different"+dii+"!="+di, Toast.LENGTH_SHORT).show();

      }

}

 }
4

1 に答える 1

2

エラーはここにあると思います。保存する前に共有設定の値を取得しようとしています

// Fetching of value

    int idd = app_preferences.getInt("idd", 0);

Log.e("value " , " is "  + idd);
as at this time there shall be no value in  preference 

    // and commitng after it 



      SharedPreferences.Editor editor = app_preferences.edit();  
        editor.putInt("idd", 43);
        editor.commit(); // Very important

フェッチする前に設定を保存し、ログも確実に出力するようにする必要があります

于 2012-07-05T06:16:35.297 に答える