Android 每次启动时都会删除ListView数据
我创建了一个动态ListView,但是每次启动时都会删除ListView中的数据?你能写一些示例应用程序吗 我有一个关于第一个引导记录程序的早期开放数据将如何带来? 我知道我需要使用SharedReferences,但是如何使用,我的实验失败了Android 每次启动时都会删除ListView数据,android,android-listview,Android,Android Listview,我创建了一个动态ListView,但是每次启动时都会删除ListView中的数据?你能写一些示例应用程序吗 我有一个关于第一个引导记录程序的早期开放数据将如何带来? 我知道我需要使用SharedReferences,但是如何使用,我的实验失败了 private SharedPreferences ayarla; private String AYAR_ADI="ayarlist"; private SharedPreferences.Editor editor; private ArrayLis
private SharedPreferences ayarla;
private String AYAR_ADI="ayarlist";
private SharedPreferences.Editor editor;
private ArrayList<String> dersler = new ArrayList<String>();
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
adapter = new ArrayAdapter<String>(this,R.layout.customlistview,dersler);
ayarla = getApplicationContext().getSharedPreferences(AYAR_ADI, Context.MODE_PRIVATE);
Button btnDersEkle = (Button)findViewById(R.id.btnDersEkle);
btnDersEkle.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
if(dersler.size()<12) {
lV.clearTextFilter();
adapter.notifyDataSetChanged();
alert.setView(et());
alert.show();
}
}
});
lV = (ListView)findViewById(R.id.lV);
lV.setAdapter(adapter);
alert = new AlertDialog.Builder(this);
alert.setTitle("Ders Giriniz...");
alert.setMessage("En fazla 12 ders ekleyebilirsiniz.");
alert.setPositiveButton("Ekle", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ayarla = getApplicationContext().getSharedPreferences(AYAR_ADI, Context.MODE_PRIVATE);
editor = ayarla.edit();
if((null!=editText.getText().toString()&&editText.getText().toString().length()>0)){
dersler.add(editText.getText().toString());
// editor.putString("ayarlist", String.valueOf(editText.getText().toString()));
alert.setView(et());
alert.show();
editor.putString("ayarlist",editText.getText().toString());
editor.commit();
}
}
});
private SharedReferences ayarla;
私有字符串AYAR_ADI=“ayarlist”;
私有共享参考。编辑器;
private ArrayList dersler=new ArrayList();
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
adapter=new ArrayAdapter(this,R.layout.customlistview,dersler);
ayarla=getApplicationContext().getSharedReferences(AYAR\u ADI,Context.MODE\u PRIVATE);
按钮btendersekle=(按钮)findViewById(R.id.btendersekle);
btendersekle.setOnClickListener(新的OnClickListener(){
@凌驾
公共void onClick(视图v){
如果(dersler.size()0)){
add(editText.getText().toString());
//editor.putString(“ayarlist”,String.valueOf(editText.getText().toString());
alert.setView(et());
alert.show();
putString(“ayarlist”,editText.getText().toString());
commit();
}
}
});
}因为您没有保存数据。要保存listview,可以使用数据库或SharedReferences。您可以在此处查看SharedReference的详细用法: 以及此处数据库的使用情况: )
希望这有助于Hye,如果您仍然找到答案,那么我有一个答案,即使经过长时间的搜索,我还是找到了这个有效的解决方案。! 我使用数组列表将信息存储到共享首选项中 发送活动:
public void Write() {
if (TextUtils.isEmpty(etDisp.getText().toString())) {
return;
} else {
// ====== ARRAY-LIST =======
sendinglist.add(etDisp.getText().toString()); // sendinglist is an ArrayList<String>
Editor editor = sp.edit(); //SharedPreferences sp;
try {
editor.putString("svalue",
ObjectSerializer.serialize(sendinglist));
} catch (IOException e) {
}
editor.commit();
}
}
public void Write(){
if(TextUtils.isEmpty(etDisp.getText().toString()){
回来
}否则{
//=======阵列-列表=======
sendinglist.add(etDisp.getText().toString());//sendinglist是一个ArrayList
Editor Editor=sp.edit();//SharedReferences sp;
试一试{
editor.putString(“svalue”,
序列化(发送列表));
}捕获(IOE异常){
}
commit();
}
}
从数组列表中检索
try {
receivinglist = (ArrayList<String>) ObjectSerializer.deserialize(sp
.getString("svalue", "N/A")); // receivinglist is an ArrayList<String>
} catch (IOException e) {
e.printStackTrace();
}
ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,
android.R.layout.simple_expandable_list_item_1, receivinglist);
setListAdapter(adapter);
试试看{
receivinglist=(ArrayList)ObjectSerializer.deserialize(sp
.getString(“svalue”,“N/A”);//receivinglist是一个ArrayList
}捕获(IOE异常){
e、 printStackTrace();
}
ArrayAdapter=新的ArrayAdapter(此,
android.R.layout.simple_可扩展_列表_项目_1,接收列表);
setListAdapter(适配器);
我目前正在我的项目中使用这种方法
而ObjectSerializer.java是一个类
这涉及到这项工作的逻辑代码
你可以从中找到答案。你能准确地解释问题吗?你的问题到底是什么?我已经创建了一个列表视图和一个按钮。当我点击按钮时,会打开一个对话框窗口。在此对话框中输入数据,我将传输ListView。但是我退出了程序,在列表视图中输入的数据丢失了。首先感谢您的回答。但开幕式上要展示的数据存在问题。我在下面分享我代码的相关部分。我已经使用了SharedReferences