当前位置: 首页 > 知识库问答 >
问题:

Android Studio Java以新行显示文本文件内容

聂永怡
2023-03-14

我正在创建一个体重跟踪应用程序,用户输入他们的体重,点击一个保存按钮,然后体重被保存。还有一个加载按钮,加载前面的所有输入。我遇到的问题是,一旦加载被点击,它会加载屏幕上的权重,但它会在一行中加载权重,而不是为每一行单独加载权重。

我检查了文本文件,所有的权重都存储在一行中,所以存储输入的函数没有问题。

package com.example.workouttracker;

import androidx.appcompat.app.AppCompatActivity;

import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
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;
import java.io.OutputStreamWriter;

public class WeightTracking extends AppCompatActivity {
    private static final String FILE_NAME = "WeightTracking.txt";


    EditText mEditText;
    EditText mEditText2;
    private Button button_back_home;



    @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);

        button_back_home=(Button) findViewById(R.id.button_back_home);
        button_back_home.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                homePage();
            }
            private void homePage(){
                startActivity(new Intent(getApplicationContext(),MainActivity.class).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP));
            }
        });

    }
    public void save(View v) {
        String text = mEditText.getText().toString();
        FileOutputStream fos = null;

        try {
            fos = openFileOutput(FILE_NAME, MODE_APPEND);
            fos.write((text + "kg's\n").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);
                sb.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();
                }
            }
        }
    }
}

有人知道如何让它一条线一条线地加载每一个重量吗?谢谢

`

共有1个答案

冯星剑
2023-03-14

如果您在edittext上添加了属性android:inputtype=“textmultiline”,请检查您的xml文件

 类似资料:
  • 我想在CMD窗口中显示文本文件的内容。此外,我希望看到添加到文件中的新行,如Unix中的tail-f命令。

  • 我使用JetBrains PhpStorm作为我的IDE,我绝对喜欢它,但遗憾的是,由于一个问题,我需要改用Adobe Dreamweaver。 我有一个相当烦人的问题,任何< code>index.php文件都显示为文本文件,即使它的扩展名是< code >。php。注意,这只适用于名为< code>index.php的文件。我想这是一个需要更改的设置,但在文档中找不到任何解决方案。 以前有人遇

  • 我已经创建了一个歌曲类,其中包括歌曲(标题、艺术家、专辑)的数据成员。我已经有了一个包含不同歌曲的. txt文件,该文件存储在数组列表中。在我的主类中,功能之一是允许用户通过标题、艺术家或专辑搜索歌曲。 我的问题是,当用户输入某些标题时,搜索功能无法找到歌曲。例如,当我搜索歌曲标题“停留”时,它会找到它。但是,当我搜索名为“波西米亚狂想曲”的歌曲时,它找不到存储的歌曲。我知道它是存储的,因为当我显

  • 问题内容: 我有诸如ffmpeg和gstreamer之类的外部程序在后台运行并写入日志文件。我想用我的Flask应用程序显示此日志的内容,以便用户可以像在终端中那样观看日志更新。 我试图指向日志文件,但是无法显示数据,或者浏览器告诉我我需要一个插件。 如何在HTML页面中嵌入和更新日志文件? 问题答案: 使用Flask视图可以永久不断地从文件中读取数据并流式传输响应。使用JavaScript从流中

  • 显示文本 使用一个 Text 对象 (PIXI.Text)在舞台上展示文本。简单来说,你可以这样使用它: let message = new Text("Hello Pixi!"); app.stage.addChild(message); 这将会在画布上展示文本“Hello, Pixi”。Pixi的文本对象继承自Sprite类,所以它包含了所有相同的属性,像x, y, width, height

  • 我需要显示一个多行的只读文本,哪个控件可以用来显示?它应该只显示文本,就像标签一样,但是标签不支持多行? 谢谢你的提示:-)