使用SharedPreferences从ListView保存数据 [英] Saving Data from ListView using SharedPreferences

查看:92
本文介绍了使用SharedPreferences从ListView保存数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我尝试寻找答案,但找不到我想要的东西:这是我第一次尝试保存数据/使用SharedPreferences,所以我不太确定自己在做什么.要点是,这样,当用户在EditText中输入内容后,它就会填充ListView.但是我也想要它,以便在执行此操作时,该应用程序还保存字符串,以便当用户重新进入该应用程序时,我可以使用LoadPreferences来获取它.虽然不会发生

i tried searching for an answer but could not find what i was looking for: this was my first try at saving data/using SharedPreferences so i wasnt quite sure of what i was doing. The main point was so that after a user inputs something in the EditText, it populates the ListView. But i also want it so that when this is carried out, the app also saves the string so that I can use LoadPreferences to have it when a user re-enters the app. This does not happen though

代码:

public class TaskPage extends SherlockActivity {

EditText display;
ListView lv;
ArrayAdapter<String> adapter;
Button addButton;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    display = (EditText) findViewById(R.id.editText1);
    lv = (ListView) findViewById(R.id.listView1);
    addButton = (Button) findViewById(R.id.button1);


    adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1);
    lv.setAdapter(adapter);
    LoadPreferences();


    addButton.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View v) {
            // TODO Auto-generated method stub
            String task = display.getText().toString();


                adapter.add(task);
                adapter.notifyDataSetChanged();
                SavePreferences("LISTS", task);
        }
    });
}

protected void SavePreferences(String key, String value) {
    // TODO Auto-generated method stub
    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", "None Available");

}

我很确定我做错了什么,但是没有错误.因此,当我运行该应用程序时,一切正常,除了没有保存任何内容(或者它只是不显示在ListView中)

Im quite sure that i did something wrong but there are no errors. so when i run the app, everything works except nothing is saved(or maybe it just does not show in the ListView)

那我该如何解决呢?谢谢!

So how can i fix this? Thanks!

推荐答案

将LoadPreferences()方法更改为:

Change you LoadPreferences() method as :

protected void LoadPreferences(){
    SharedPreferences data = PreferenceManager.getDefaultSharedPreferences(this);
    String dataSet = data.getString("LISTS", "None Available");

     adapter.add(dataSet);
     adapter.notifyDataSetChanged();
}

在当前代码中,您没有将 dataSet 添加到 ArrayAdapter

in your current code you are not adding dataSet to ArrayAdapter

这篇关于使用SharedPreferences从ListView保存数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆