java - Android Studio Java 文本文件中存储的输入在加载后全部加载到一行中以显示在屏幕上
问题描述
我正在制作一个体重跟踪应用程序。该应用程序要求用户输入有一个按钮来保存重量。单击按钮后,输入将保存到文本文件中。然后有一个加载功能,它在模拟器屏幕的下部显示文本文件的内容。
我已经设法让所有这些工作,但是一旦单击加载按钮,文本文件内容都显示在一行上。例如 908988 等。但我希望它们每一个都显示在一个新行中,或者它们之间有几个空格。
任何人都可以指出我正确的方向吗?提前致谢。
主要活动的代码:
package com.example.workouttracker;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import java.io.BufferedReader;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
public class WeightTracking extends AppCompatActivity {
private static final String FILE_NAME = "WeightTracking.txt";
EditText mEditText;
EditText mEditText2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_weight_tracking);
mEditText = findViewById(R.id.weight);
mEditText2 = findViewById(R.id.weight2);
}
public void save(View v) {
String text = mEditText.getText().toString();
FileOutputStream fos = null;
try {
fos = openFileOutput(FILE_NAME, MODE_APPEND);
fos.write(text.getBytes());
mEditText.getText().clear();
Toast.makeText(this, "Saved to " + getFilesDir() + "/" + FILE_NAME,
Toast.LENGTH_LONG).show();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fos != null) {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
public void load(View v) {
FileInputStream fis = null;
try {
fis = openFileInput(FILE_NAME);
InputStreamReader isr = new InputStreamReader(fis);
BufferedReader br = new BufferedReader(isr);
StringBuilder sb = new StringBuilder();
String text;
while ((text = br.readLine()) != null) {
sb.append(text).append("\n");
}
mEditText2.setText(sb.toString());
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (fis != null) {
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}
xml的代码:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".WeightTracking">
<TextView
android:id="@+id/heading"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Weight Tracking"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintHorizontal_bias="0.498"
app:layout_constraintLeft_toLeftOf="parent"
app:layout_constraintRight_toRightOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:layout_constraintVertical_bias="0.04" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="50dp"
android:gravity="center_horizontal"
android:text="Please Enter weight in kg's"
android:textSize="20sp" />
<EditText
android:id="@+id/weight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_marginTop="10dp"
android:ems="6"
android:inputType="number|numberDecimal"
android:textSize="20sp"/>
<EditText
android:id="@+id/weight2"
android:layout_width="match_parent"
android:layout_height="146dp"
android:layout_gravity="center_horizontal"
android:layout_marginTop="300dp"
android:ems="6"
android:inputType="number|numberDecimal"
android:textSize="20sp" />
<Button
android:id="@+id/button_save"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_gravity="center_horizontal"
android:layout_marginTop="150dp"
android:text="Save"
android:onClick="save"/>
<Button
android:id="@+id/button_load"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:layout_centerHorizontal="true"
android:layout_marginTop="220dp"
android:text="Load"
android:onClick="load"/>
</RelativeLayout>
解决方案
推荐阅读
- google-apps-script - 有没有办法让指定用户的谷歌文档处于建议模式,同时仍然允许运行添加的脚本?
- c++ - 指针问题:从不兼容的类型“int”分配给“int *”
- hl7-fhir - 将原始 txt 数据转换为 JSON 格式的 FHIR 资源
- sql - 查询不同数据库中同名的多个表
- python - Python 网页抓取动态内容
- ruby-on-rails - Rails Puma:--no-dev-caching 不起作用
- post - 发布请求总是在 JMeter 中返回错误
- django - 在 Django 中,on_delete 是用 Python 实现的,还是使用 DB 触发器实现的,用于 PostgreSQL 数据库?
- php - 当我登录时,我想在 Laravel 中查看除登录用户之外的所有用户信息?
- python - 如何一次停止超过 1 发子弹射击?