gpt4 book ai didi

Android 从多个文本文件中读取并在表格 View 中显示

转载 作者:行者123 更新时间:2023-11-29 00:13:31 24 4
gpt4 key购买 nike

我需要一些帮助,以便将来自多个文本文件的数据放入一个显示在 Activity 中的表格中。

文本文件的每一行都有一个值。

我希望这些字符串显示在表格中的一列中,其中每一列显示类似格式的另一个文本文件数据。

我想要显示这样的内容:

table

我目前使用的代码在 TextView 中显示了一个文本文件,我如何操作代码来实现我所需要的?

 public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.stats);

File sdCard = Environment.getExternalStorageDirectory();

String path = sdCard.getAbsolutePath() + "/SO/";
File file = new File(path + "cheststats.txt");

StringBuilder text = new StringBuilder();

try {
BufferedReader br = new BufferedReader(new FileReader(file));
String line;

while ((line = br.readLine()) != null) {
text.append(line);
text.append('\n');
}
br.close();
}
catch (IOException e) {
}
TextView tv = (TextView)findViewById(R.id.tv);
tv.setText(text);
}
}

最佳答案

这不是一个好问题,因为执行此操作所需的所有琐碎信息都在 Android Developers 上。 .但无论如何,我希望以下步骤对您有所帮助:

1) 为统计表创建 stats.xml 布局:

<?xml version="1.0" encoding="utf-8"?>
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/tableStats"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
android:layout_weight="1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:text="Stats"
android:gravity="center"
android:id="@+id/textView4" />
</TableRow>

<TableRow
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="Text File 1 Data"
android:id="@+id/textView1" />

<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="Text File 2 Data"
android:id="@+id/textView2" />

<TextView
android:layout_width="0dp"
android:layout_weight="1"
android:layout_height="wrap_content"
android:text="Text File 3 Data"
android:id="@+id/textView3" />
</TableRow>
</TableLayout>

2) 为统计表行创建 stats_row.xml 布局:

<?xml version="1.0" encoding="utf-8"?>
<TableRow xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content">

<TextView
android:id="@+id/textView1"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_vertical|end" />

<TextView
android:id="@+id/textView2"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_vertical|end" />

<TextView
android:id="@+id/textView3"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:gravity="center_vertical|end" />
</TableRow>

3) 接下来,创建读取文件的函数:

    private List<String> readFileData(String filePath) {
List<String> values = new ArrayList<>();

try {
BufferedReader fileBufferedReader = new BufferedReader(new FileReader(new File(filePath)));
String value;
while ((value = fileBufferedReader.readLine()) != null) {
values.add(value);
}
fileBufferedReader.close();
} catch (IOException ignore) {
}

return values;
}

4) 创建用于填充统计行 View 的函数:

    private void fillView(View view, String dataset1Value, String dataset2Value, String dataset3Value) {
TextView textView1 = (TextView) view.findViewById(R.id.textView1);
TextView textView2 = (TextView) view.findViewById(R.id.textView2);
TextView textView3 = (TextView) view.findViewById(R.id.textView3);

textView1.setText(dataset1Value);
textView2.setText(dataset2Value);
textView3.setText(dataset3Value);
}

5) 最后你的 onCreate 函数应该是这样的:

    public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.stats);

TableLayout tableStats = (TableLayout) findViewById(R.id.tableStats);

String path = Environment.getExternalStorageDirectory().getAbsolutePath() + "/SO/";

List<String> data1 = readFileData(path + "file1.txt");
List<String> data2 = readFileData(path + "file2.txt");
List<String> data3 = readFileData(path + "file3.txt");

int maxDataSetSize = Math.max(data1.size(), Math.max(data2.size(), data3.size()));

for (int i = 0; i < maxDataSetSize; i++) {
String dataset1Value = data1.size() > i ? data1.get(i) : null;
String dataset2Value = data2.size() > i ? data2.get(i) : null;
String dataset3Value = data3.size() > i ? data3.get(i) : null;

View statsRowview = getLayoutInflater().inflate(R.layout.stats_row, null);

fillView(statsRowview, dataset1Value, dataset2Value, dataset3Value);

tableStats.addView(statsRowview);
}
}

我不确定它是否会在第一次尝试时起作用。我没有测试过。

关于Android 从多个文本文件中读取并在表格 View 中显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28385282/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com