如何从数组中保存/恢复数据 - Eclipse

Posted

技术标签:

【中文标题】如何从数组中保存/恢复数据 - Eclipse【英文标题】:How to save/restore data from an array - Eclipse 【发布时间】:2014-06-11 08:05:28 【问题描述】:

我创建了一个数组。我希望能够保存它并在应用程序从内存中关闭时加载它。 .我做了一些研究,发现您可以使用以下命令:SaveArrayListToSD 和 ReadArrayListFromSD。

但是,我不知道如何将这些与我的其余代码联系起来... 应用打开/关闭时如何保存和加载数组?

经过进一步研究,我改变了对 SQLite 数据库的看法——如果它更简单,我不介意使用它。如果我要使用 SQLite 数据库,我将如何将我的数组列表保存到数据库中?

代码:

public class MainActivity extends ActionBarActivity 

@Override
protected void onCreate(Bundle savedInstanceState)  //Rendering the UI
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ListView myListView = (ListView)findViewById(R.id.myListView);
    final EditText myEditText = (EditText)findViewById(R.id.myEditText);



    //Creating Array of Strings

    final ArrayList todoItems = new ArrayList();
    final ArrayAdapter aa;
    aa = new ArrayAdapter(this,android.R.layout.simple_list_item_1,
            todoItems);
    myListView.setAdapter(aa);


    myEditText.setOnKeyListener(new OnKeyListener() 
        public boolean onKey(View v, int keyCode, KeyEvent event) 
        if (event.getAction() == KeyEvent.ACTION_DOWN)
        if (keyCode == KeyEvent.KEYCODE_DPAD_CENTER)
        todoItems.add(0, myEditText.getText().toString());
        aa.notifyDataSetChanged();

        return true;
        
        return false;
        
        );
        

    public static void SaveArrayListToSD(Context mContext, String savedArray, ArrayList todoItems) 

        try 

        FileOutputStream fos = mContext.openFileOutput(savedArray + ".dat", mContext.MODE_PRIVATE);
            ObjectOutputStream oos = new ObjectOutputStream(fos);
            oos.writeObject(todoItems);
            fos.close();

     catch (Exception e) 
            e.printStackTrace();
        


    

    public static Object ReadArrayListFromSD(Context mContext,String savedArray)
        try 
            FileInputStream fis = mContext.openFileInput(savedArray + ".dat");
            ObjectInputStream ois = new ObjectInputStream(fis);
            Object obj= (Object) ois.readObject();
            fis.close();
            return obj;

         catch (Exception e) 
            e.printStackTrace();
            return new ArrayList<Object>();
        
    


【问题讨论】:

【参考方案1】:

您可以使用内部存储将字符串保存在 ArrayList 中。 Here is more info on using internal storage.可以在onStop或者onDestory中写入数据,在onCreate中读取数据。

【讨论】:

【参考方案2】:

我可以为你写一个简单的例子。

初始化 SQLite

SQLiteDatabase db = db=openOrCreateDatabase("yourDBName", Context.MODE_PRIVATE, null);

db.execSQL("CREATE TABLE IF NOT EXISTS Employee(id VARCHAR,name VARCHAR,email VARCHAR);");

db.execSQL("INSERT INTO student VALUES('"+idField.getText()+"','"+nameTextfield.getText()+"','"+emailtextfield.getText()+"');");

db.execSQL("DELETE FROM Employee WHERE id='"+idField.getText()+"'");

db.execSQL("UPDATE Employee SET name='"+nameTextfield.getText()+"',email='"+emailTextfield.getText()+"'WHERE id='"+idField.getText()+"'");

要从数据库中选择,请按照此操作

Cursor c=db.rawQuery("SELECT * FROM Employee WHERE id='"+idField.getText()+"'", null);
if(c.moveToFirst())
  //String id = c.getString(0);
  String name = c.getString(1);
  String email = c.getString(2);

【讨论】:

以上是关于如何从数组中保存/恢复数据 - Eclipse的主要内容,如果未能解决你的问题,请参考以下文章

eclipse中 remove from buildpath啥意思 删除的package如何添加回来

日食从崩溃中恢复

eclipse页面一点就乱了,如何恢复以前刚刚打开eclipse时的默认界面

从 0 和 1 的数组中恢复复选框的状态

python 如何从保存的文件中恢复模型

如何正确的对安卓手机进行数据恢复