如何在 Android Studio 中使用共享首选项保存我的 listView
How can I save my listView with Shared Preferences in Android Studio
我的项目有 edittext、countdowntimer、listview 和共享首选项。我的应用程序可以运行。我的倒数计时器完成后我在我的列表视图中添加文本。我用共享偏好保存它。如果我在完成后打开新的倒数计时器,它会向 listview 添加新文本,但它只保存最后一个文本我如何保存 ListView 中的所有文本。
public class pomodoro extends AppCompatActivity {
Button baslat,backhome,bitir;
EditText edittextcalisma,edittextmola;
CountDownTimer calisma,mola;
ArrayList<String> list = new ArrayList<String>();
ArrayAdapter arrayAdapter;
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pomodoro);
LoadPreferences();
listView=(ListView)findViewById(R.id.listv);
arrayAdapter = new ArrayAdapter<String>(
this,R.layout.list_view,R.id.textitem, list);
listView.setAdapter(arrayAdapter);
bitir=findViewById(R.id.bitirbutton);
baslat = findViewById(R.id.baslatbutton);
edittextcalisma = findViewById(R.id.edittextcalisma);
edittextmola = findViewById(R.id.edittextmola);
baslat.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
closeKeyboard();
final int molapo = Integer.valueOf(edittextmola.getText().toString());
final int calismapo = Integer.valueOf(edittextcalisma.getText().toString());
CountDownTimer bekle = new CountDownTimer(5000, 1000) {
@Override
public void onTick(long millis) {
}
@Override
public void onFinish() {
Calendar c = Calendar.getInstance();
SimpleDateFormat dateformat = new SimpleDateFormat("dd-MMMM-yyyy HH:mm");
String datetime = dateformat.format(c.getTime());
list.add("Çalışma Süresi : " + calismapo +" dk "+"\n"+ "Mola Süresi : " + molapo+" dk " +"\n" + datetime);
arrayAdapter.notifyDataSetChanged(); SavePreferences("LISTS", task);
}
}.start();
}
}.start();
}
}.start();
}
}
});
} protected void SavePreferences(String key, String value) {
SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = data.edit();
editor.putString(key, value);
editor.commit();
}
protected void LoadPreferences(){
SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(this);
String dataSet = data.getString("LISTS", "");
list.add(dataSet);
arrayAdapter.notifyDataSetChanged();
}
}
共享首选项允许您将少量原始数据作为 key/value 对存储在设备上的文件中。如果您想存储列表或大量数据,请使用带 Room 的本地数据库。
我的项目有 edittext、countdowntimer、listview 和共享首选项。我的应用程序可以运行。我的倒数计时器完成后我在我的列表视图中添加文本。我用共享偏好保存它。如果我在完成后打开新的倒数计时器,它会向 listview 添加新文本,但它只保存最后一个文本我如何保存 ListView 中的所有文本。
public class pomodoro extends AppCompatActivity {
Button baslat,backhome,bitir;
EditText edittextcalisma,edittextmola;
CountDownTimer calisma,mola;
ArrayList<String> list = new ArrayList<String>();
ArrayAdapter arrayAdapter;
ListView listView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pomodoro);
LoadPreferences();
listView=(ListView)findViewById(R.id.listv);
arrayAdapter = new ArrayAdapter<String>(
this,R.layout.list_view,R.id.textitem, list);
listView.setAdapter(arrayAdapter);
bitir=findViewById(R.id.bitirbutton);
baslat = findViewById(R.id.baslatbutton);
edittextcalisma = findViewById(R.id.edittextcalisma);
edittextmola = findViewById(R.id.edittextmola);
baslat.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
closeKeyboard();
final int molapo = Integer.valueOf(edittextmola.getText().toString());
final int calismapo = Integer.valueOf(edittextcalisma.getText().toString());
CountDownTimer bekle = new CountDownTimer(5000, 1000) {
@Override
public void onTick(long millis) {
}
@Override
public void onFinish() {
Calendar c = Calendar.getInstance();
SimpleDateFormat dateformat = new SimpleDateFormat("dd-MMMM-yyyy HH:mm");
String datetime = dateformat.format(c.getTime());
list.add("Çalışma Süresi : " + calismapo +" dk "+"\n"+ "Mola Süresi : " + molapo+" dk " +"\n" + datetime);
arrayAdapter.notifyDataSetChanged(); SavePreferences("LISTS", task);
}
}.start();
}
}.start();
}
}.start();
}
}
});
} protected void SavePreferences(String key, String value) {
SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(this);
SharedPreferences.Editor editor = data.edit();
editor.putString(key, value);
editor.commit();
}
protected void LoadPreferences(){
SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(this);
String dataSet = data.getString("LISTS", "");
list.add(dataSet);
arrayAdapter.notifyDataSetChanged();
}
}
共享首选项允许您将少量原始数据作为 key/value 对存储在设备上的文件中。如果您想存储列表或大量数据,请使用带 Room 的本地数据库。