2017-11-26 9 views
1

現在、私は設定を保存するAndroidアプリを開発中です。ユーザーは、最初の使用後に戻ってくると、以前の選択肢を読み込むことができます。しかし、私がこれを行うと、ループが実行されている間に数秒の遅延があります。これについてもっと良い方法がありますか?テキストファイルに基づいてチェックボックスを設定する最も効率的な方法

if(stored) 
    { 
     CheckBox checkBox; 
     ViewGroup viewGroup1 = (ViewGroup) findViewById(R.id.rightLayout); 
     ViewGroup viewGroup2 = (ViewGroup) findViewById(R.id.leftLayout); 
     String[] preferences = fileReadIn().split(","); 
     String checkBoxText; 
     String preferenceText; 
     for(int i = 0; i < preferences.length; i++) 
     { 
      preferenceText = preferences[i].toLowerCase(); 
      for(int c = 0; c < viewGroup1.getChildCount(); c++) 
      { 
       checkBox = (CheckBox) viewGroup1.getChildAt(c); 
       checkBoxText = checkBox.getText().toString().toLowerCase(); 
       if(preferenceText.equals(checkBoxText)) 
       { 
        checkBox.setChecked(true); 
       } 
      } 
      for(int c = 0; c < viewGroup2.getChildCount(); c++) 
      { 
       checkBox = (CheckBox) viewGroup2.getChildAt(c); 
       checkBoxText = checkBox.getText().toString().toLowerCase(); 
       if(preferenceText.equals(checkBoxText)) 
       { 
        checkBox.setChecked(true); 
       } 
      } 
     } 
    } 

答えて

0

ファイルに設定を保存する必要はありません。 Androidは既に、より簡単で迅速な方法で、&を保存しています。私が調整されます

SharedPreferences.Editor editor = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE).edit(); 
editor.putString("preferences", myString); 
editor.apply(); 

そして、あなたが取得したい場合は、単に使用し、

SharedPreferences prefs = getSharedPreferences(MY_PREFS_NAME, MODE_PRIVATE); 
String myString= prefs.getString("preferences", null); 
if (myString != null) { 
    //do whatever you want with it 
} 
+0

ありがとう:

あなたが値を格納したい場合はここで小さな例では、ですがSharedPreferencesマニュアルを参照してくださいプロジェクトは代わりに保存された環境設定を使用します。 –

関連する問題