我的應(yīng)用程序?qū)⒍嘈形谋颈4鍱ditView到一個文本文件中,但問題是如果我重新啟動我的應(yīng)用程序,只會恢復(fù)最后一行。(也許也有可能是FileOutputStreamonly保存了最后一行,我不確定ˉ_(ツ)_/ˉ)這是我的代碼:private static final String TAG = "EditDataActivity";public static String Textfile = "test.txt";private Button btnSave,btnDelete;private EditText editable_item;EditText Zutaten, Zubereitung;DatabaseHelper mDatabaseHelper;private String selectedName;private int selectedID;@Overrideprotected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.edit_data_layout); btnSave = (Button) findViewById(R.id.btnSave); btnDelete = (Button) findViewById(R.id.btnDelete); editable_item = (EditText) findViewById(R.id.editable_item); mDatabaseHelper = new DatabaseHelper(this); Zutaten = (EditText)findViewById(R.id.editText4); Zubereitung = (EditText)findViewById(R.id.editText2); Zutaten.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) { } @Override public void onTextChanged(CharSequence s, int start, int before, int count) { } @Override public void afterTextChanged(Editable s) { try{ EditText test = (EditText)findViewById(R.id.editable_item); String testText = test.getText().toString(); String Textfile2 = testText + ".txt"; EditText field = (EditText)findViewById(R.id.editText4); String text = field.getText().toString(); FileOutputStream fos = openFileOutput(Textfile2, Context.MODE_PRIVATE); fos.write(text.getBytes()); fos.close(); }catch (IOException e){ System.out.println("Error"); } } });完全希望你能幫助我 :) 謝謝!
1 回答

慕勒3428872
TA貢獻1848條經(jīng)驗 獲得超6個贊
做就是了
while ((test = reader.readLine()) != null) { Test.setText(Test.getText()+"\n" + test); }
當你只有 setText(test) 時,它會在每次循環(huán)運行時替換編輯文本中的文本,但你必須將新文本附加到最后一行。更好的方法是先創(chuàng)建 String,然后將其設(shè)置為 EditText,因為這樣可以提高性能。
StringBuilder str = new StringBuilder(); while((test = reader.readLine()) != null) str.append('\n' + test); Test.setText(str.toString());
希望這能解決您的問題。
添加回答
舉報
0/150
提交
取消