如何从数组中保存/恢复数据 - 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如何添加回来