Java 如何在Android Studio中保存具有共享首选项的listView
我在我的项目上有edittext、倒计时、listview和共享首选项。我的应用程序可以工作。我的倒计时完成后,我将文本添加到我的列表视图中。我用共享的首选项保存这个。如果我在完成后打开新的倒计时计时器,将新文本添加到listview,但它只保存最后一个文本,那么如何保存listview中的所有文本Java 如何在Android Studio中保存具有共享首选项的listView,java,android,android-studio,sharedpreferences,countdowntimer,Java,Android,Android Studio,Sharedpreferences,Countdowntimer,我在我的项目上有edittext、倒计时、listview和共享首选项。我的应用程序可以工作。我的倒计时完成后,我将文本添加到我的列表视图中。我用共享的首选项保存这个。如果我在完成后打开新的倒计时计时器,将新文本添加到listview,但它只保存最后一个文本,那么如何保存listview中的所有文本 public class pomodoro extends AppCompatActivity { Button baslat,backhome,bitir;
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();
}
}
public类pomodoro扩展了appcompative活动{
Button baslat、backhome、bitir;
EditText edittextcalisma,edittextmola;
倒数计时卡里斯马,莫拉;
ArrayList=新建ArrayList();
ArrayAdapter ArrayAdapter;
列表视图列表视图;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_pomodoro);
LoadPreferences();
listView=(listView)findViewById(R.id.listv);
arrayAdapter=新的arrayAdapter(
这个,R.layout.list(视图,R.id.textitem,列表);
setAdapter(arrayAdapter);
bitir=findViewById(R.id.biterButton);
baslat=findViewById(R.id.baslatbutton);
edittextcalisma=findViewById(R.id.edittextcalisma);
edittextmola=findViewById(R.id.edittextmola);
setOnClickListener(新视图.OnClickListener(){
@凌驾
公共void onClick(视图){
关闭键盘();
final int molapo=Integer.valueOf(edittextmola.getText().toString());
final int calismapo=Integer.valueOf(edittextcalisma.getText().toString());
倒计时器bekle=新倒计时器(5000,1000){
@凌驾
公共无效条(长毫秒){
}
@凌驾
公共无效onFinish(){
Calendar c=Calendar.getInstance();
SimpleDataFormat dateformat=新的SimpleDataFormat(“dd-MMMM-yyy-HH:mm”);
字符串datetime=dateformat.format(c.getTime());
列表。添加(“圣马苏雷斯:+calismapo+“dk”+“\n”+“Mola苏雷斯:”+molapo+“dk”+“\n”+日期时间);
arrayAdapter.notifyDataSetChanged();保存首选项(“列表”,任务);
}
}.start();
}
}.start();
}
}.start();
}
}
});
}受保护的void SavePreferences(字符串键、字符串值){
SharedReferences数据=PreferenceManager.GetDefaultSharedReferences(此);
SharedReferences.Editor=data.edit();
编辑器.putString(键,值);
commit();
}
受保护的void LoadPreferences(){
SharedReferences数据=PreferenceManager.GetDefaultSharedReferences(此);
字符串数据集=data.getString(“列表”,“数据”);
添加(数据集);
arrayAdapter.notifyDataSetChanged();
}
}
共享首选项允许您将少量基本数据作为键/值对存储在设备上的文件中。如果要存储列表或大量数据,请使用本地数据库和存储空间
我如何将我的列表存储到Room Persistence Library Fallow此代码库这将帮助您了解Room数据库此代码库由Google提供您无法将视图保存到共享首选项中。但是您可以将基本的原始数据保存到其中。此数据只能是基本类型,如boolean、int、long和String。除了列表视图本身,您还想保存什么?您可能希望将列表视图的内容作为键值对保存到共享首选项中。如果数据很小,您可以将JSON格式的数据存储在SharedReferences中。