亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

EditView 只顯示文本文件的最后一行

EditView 只顯示文本文件的最后一行

Qyouu 2023-04-26 15:07:06
我的應用程序將多行文本保存EditView到一個文本文件中,但問題是如果我重新啟動我的應用程序,只會恢復最后一行。(也許也有可能是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條經驗 獲得超6個贊

做就是了

while ((test = reader.readLine()) != null) {
                Test.setText(Test.getText()+"\n" + test);
            }

當你只有 setText(test) 時,它會在每次循環運行時替換編輯文本中的文本,但你必須將新文本附加到最后一行。更好的方法是先創建 String,然后將其設置為 EditText,因為這樣可以提高性能。

StringBuilder str = new StringBuilder();
while((test = reader.readLine()) != null)
    str.append('\n' + test);
Test.setText(str.toString());

希望這能解決您的問題。


查看完整回答
反對 回復 2023-04-26
  • 1 回答
  • 0 關注
  • 140 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號