3つのeditTextファイル(editText1、editText2、editText3)にユーザーが入力した値を保存して、アプリケーションの再起動後に右のフィールドに表示しようとしています。 問題:再起動後、editText3の最後の値のみが3つのフィールドに入力されます。 特定のフィールドの値を保存して再読み込みするための回避策はありますか?Android:複数のeditTextを使用して環境設定を保存する
-2
A
答えて
0
:二番目のパラメータ( "YOURNAME" ので、注意してください
private void loadSavedPreferences() {
SharedPreferences sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(this);
editText1.setText(sharedPreferences.getString("storedName", "YourName"));
editText2.setText(sharedPreferences.getString("storedName2", "YourName"));
editText3.setText(sharedPreferences.getString("storedName3", "YourName"));
}
各テキストを取得し、その後
savePreferences("storedName", editText1.getText().toString());
savePreferences("storedName2", editText2.getText().toString());
savePreferences("storedName3", editText3.getText().toString());
を)は、指定されたキーパラメータでテキストを保存していない場合のデフォルト値です。
0
解決済み!
あなたは、各保存したテキストに異なるキーを使用する必要がありpublic class MainActivity extends AppCompatActivity {
int sum = 0;
int ects = 0;
float mark = 0;
NumberFormat numberFormat = new DecimalFormat("0.00");
Button button1;
TextView textView1;
EditText editText1;
EditText editText2;
EditText editText3;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
button1 = (Button)findViewById(R.id.button1);
textView1 = (TextView)findViewById(R.id.textView1);
editText1 = (EditText)findViewById(R.id.editTextGDI);
editText2 = (EditText)findViewById(R.id.editTextGDW);
editText3 = (EditText)findViewById(R.id.editTextProgrammieren1);
loadSavedPreferences();
button1.setOnClickListener(
new Button.OnClickListener() {
public void onClick(View v){
ViewGroup group = (ViewGroup)findViewById(R.id.activity_main);
for (int i = 0, count = group.getChildCount(); i < count; ++i) {
View view = group.getChildAt(i);
if (view instanceof EditText) {
if(view.equals(editText1) && !(editText1.getText().toString().matches(""))){ //GDI
System.out.println("edittext1");
ects += 5;
try{ sum += Integer.parseInt(editText1.getText().toString()) *5; } catch(NumberFormatException n){}
}
else if(view.equals(editText2)&& !(editText2.getText().toString().matches(""))){ //GDW
System.out.println("edittext2");
ects += 5;
try{ sum += Integer.parseInt(editText2.getText().toString()) *5; } catch(NumberFormatException n){}
}
else if(view.equals(editText3)&& !(editText3.getText().toString().matches(""))){
System.out.println("edittext3");
ects += 7;
try{ sum += Integer.parseInt(editText3.getText().toString()) *7; } catch(NumberFormatException n){}
}
}
}
mark = (float)sum/(float)ects;
textView1.setText(String.valueOf(numberFormat.format(mark)));
savePreferences("1", editText1.getText().toString());
savePreferences("2", editText2.getText().toString());
savePreferences("3", editText3.getText().toString());
sum = 0;
ects = 0;
mark = 0;
}
}
);
}
private void loadSavedPreferences() {
SharedPreferences sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(this);
editText1.setText(sharedPreferences.getString("1", "YourName"));
editText2.setText(sharedPreferences.getString("2", "YourName"));
editText3.setText(sharedPreferences.getString("3", "YourName"));
}
private void savePreferences(String key, String value) {
SharedPreferences sharedPreferences = PreferenceManager
.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = sharedPreferences.edit();
editor.putString(key, value);
editor.commit();
}
}
関連する問題
- 1. eclipse.orgの環境設定の保存を設定します
- 2. 共有環境設定を使用してパスワードを保存すると
- 3. グローバル定数を使用して環境変数を保存する
- 4. Android環境用のAWSコードビルド環境を設定する
- 5. 環境変数を設定ファイルにフォールバックで保存する
- 6. データを保存するために環境設定を使用しようとしているAndroid
- 7. Codeigniter設定複数環境
- 8. 環境ごとの設定を保存するためのツール
- 9. 共有環境設定を使用してアンドロイドで環境設定を設定します
- 10. ネットワークアプリケーションのWindows環境設定を保存する場所は?
- 11. URLのブックマークデータを環境設定に保存する理由
- 12. 共有の環境設定でカスタム配列を保存する
- 13. Rails、Mongoid、データベース環境設定の環境変数を使用するNoMethodError
- 14. Jenkins環境変数のAndroid設定
- 15. 複数の環境設定のsetOnPreferenceClickListener
- 16. Androidのアプリケーション環境設定
- 17. 入力を保存して後で使用する方法(共有環境設定を試しています)
- 18. 共有環境設定でArrayListを保存する
- 19. 環境設定でリストを保存する
- 20. LibGDX - 「環境設定」で最高得点を保存する
- 21. Javaアプリケーションに環境設定を保存する場所は?
- 22. Eclipse環境設定でクラスパス変数が保存されない
- 23. 複数の環境設定ファイルをいつ使用しますか?
- 24. コマンドライン引数を使用して環境変数を設定する
- 25. .htaccessを使用してランプ環境でNode.jsを設定する
- 26. app.get( 'env')を使用して環境固有の設定を設定する
- 27. 共有環境設定を使用してRecyclerビューのcheckBoxes選択を保存する方法?
- 28. マップマーカーの位置をマップ上に保存する共有環境設定を使用して
- 29. Libgdxの2つのクラスから環境設定を保存
- 30. 環境設定を使用して異なる色でサマリーを設定する
これを[MCVE] – t0mm13b