我製作了一個EditText
和一個Button
。點擊該按鈕應將EditText
中的文本保存到ArrayList
中。 ArrayList
然後被保存到一個文件。進一步點擊將文本從EditText
附加到ArrayList
然後文件。但是,保存文件後,我只能從文件中檢索第一項輸入。我想用逗號分隔的格式檢索整個列表。從ArrayList中只顯示第一個項目
按鈕單擊代碼:
String filename =「abc.text」;
List arrlist = new ArrayList();
b2.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String listtext = a1.getText().toString();
// a1 is edittext
if (listtext.equals("")) {
Toast.makeText(getApplicationContext(), "Enter product", Toast.LENGTH_SHORT).show();
} else {
arrlist.add(listtext);
a1.setText("");
try {
FileOutputStream fos = openFileOutput(filename, Context.MODE_APPEND);
ObjectOutputStream oos = new ObjectOutputStream(fos);
oos.writeObject(arrlist);
oos.close();
fos.close();
} catch (Exception e) {
e.printStackTrace();
Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();
}
}
}
});
從文件的ArrayList檢索:
List newarrList = new ArrayList();
FileInputStream fis = openFileInput(filename);
ObjectInputStream restore = new ObjectInputStream(fis);
newarrList= (ArrayList)restore.readObject();
restore.close();
String joined = TextUtils.join(", ", newarrList);
Toast.makeText(getApplicationContext(),joined,Toast.LENGTH_LONG).show();
// only the first item is displayed, not sure why
您是否因爲任何原因而將文件保存在僅包含1個字符串的List中?你爲什麼不保存字符串? – 2015-04-02 11:04:09
您不斷使用ObjectInputStream將ArrayList對象添加到文件中。但你只讀一個。我想你想保留一個ArrayList並更新文件而不是附加到它。 – Beggs 2015-04-02 11:06:47
關閉**終止塊中的流** – EpicPandaForce 2015-04-02 12:51:39