クイズを作れるアプリを作っています。
アプリが閉じられても更新ができるようにするために、
1問作るごとにmakeQuiz_Button2が押す必要があって押されるとクイズの題名を保存するようにしてるんですけど、2問目の題名を保存したときに、1問目が上書きされてしまうのか、どうなのかがよくわからなくて困っています。
確認方法でもいいですし、解説でもいいので教えていただきたいです。
MainActivity
1public class MainActivity extends AppCompatActivity { 2 3 static ArrayList data = new ArrayList<>(); 4 5 @Override 6 protected void onCreate(Bundle savedInstanceState) { 7 super.onCreate(savedInstanceState); 8 setContentView(R.layout.activity_main); 9 10 // リスト項目とListViewを対応付けるArrayAdapterを用意する 11 final ArrayAdapter adapter = new ArrayAdapter<>(this, android.R.layout.simple_list_item_1, data); 12 // ListViewにArrayAdapterを設定する 13 ListView listView = (ListView) findViewById(R.id.listView); 14 listView.setAdapter(adapter); 15 Button button = (Button) findViewById(R.id.makeQuiz_Button1); 16 button.setOnClickListener(new View.OnClickListener() { 17 @Override 18 public void onClick(View v) { 19 Intent intent = new Intent(MainActivity.this, com.test.quizmaker.MakeQuizActivity.class); 20 startActivity(intent); 21 } 22 }); 23 } 24 public void addData(String addTitle){ 25 data.add(addTitle); 26 } 27} 28
MakeQuizActivity
1public class MakeQuizActivity extends AppCompatActivity { 2 3 @Override 4 protected void onCreate(Bundle savedInstanceState) { 5 super.onCreate(savedInstanceState); 6 setContentView(R.layout.activity_make_quiz); 7 8 Button button2 = (Button)findViewById(R.id.makeQuiz_Button2); 9 button2.setOnClickListener(new View.OnClickListener() { 10 @Override 11 public void onClick(View v) { 12 Intent intent2 = new Intent(MakeQuizActivity.this,com.test.quizmaker.MainActivity.class); 13 PreferenceManager pm = new PreferenceManager(); 14 MainActivity main = new MainActivity(); 15 SharedPreferences sp = getSharedPreferences("DataStore",MODE_PRIVATE); 16 SharedPreferences.Editor editor = sp.edit(); 17 pm.init(sp,editor); 18 String strTitle = ((EditText)findViewById(R.id.editText)).getText().toString(); 19 String strQuiz = ((EditText)findViewById(R.id.editText2)).getText().toString(); 20 String strAnswer = ((EditText)findViewById(R.id.editText3)).getText().toString(); 21 pm.saveString(strTitle, PreferenceManager.DataKeys.TITLE); 22 String title = sp.getString(PreferenceManager.DataKeys.TITLE.getValue(), "Nothing"); 23 main.addData(title); 24 startActivity(intent2); 25 } 26 }); 27 } 28}
PreferenceManager
1public class PreferenceManager{ 2 3 public SharedPreferences sp; 4 public SharedPreferences.Editor spEditor; 5 List<String> titleList = new ArrayList<>(); 6 7 public enum DataKeys { 8 TITLE("title"), QUIZ("quiz"), ANSWER("answer"); 9 10 private String value; 11 12 private DataKeys(String value) { 13 this.value = value; 14 } 15 public String getValue() { 16 return this.value; 17 } 18 } 19 20 public void init(SharedPreferences sp, SharedPreferences.Editor editor) { 21 this.sp = sp; 22 this.spEditor = editor; 23 } 24 25 public void saveString(String s, DataKeys key){ 26 spEditor.putString(key.getValue(),s); 27 spEditor.apply(); 28 } 29} 30
回答1件
あなたの回答
tips
プレビュー