Android 每次启动时都会删除ListView数据

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

我创建了一个动态ListView,但是每次启动时都会删除ListView中的数据?你能写一些示例应用程序吗

我有一个关于第一个引导记录程序的早期开放数据将如何带来? 我知道我需要使用SharedReferences,但是如何使用,我的实验失败了

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