从EditTexts和TextViews逐行获取文本

时间:2016-12-27 19:25:04

标签: android string arraylist android-edittext textview

我的表格动态添加了EditText&{39}和TextView的行。我设法从这些框中获取文本并将其写入.txt文件。我使用ArrayList&#39喜欢

ArrayList<TextView> allTimes = new ArrayList<TextView>();
ArrayList<EditText> allNumber = new ArrayList<EditText>();

并添加了

等文本框的内容
TextView dt = new TextView(this);
allDates.add(dt);
EditText et3 = new EditText(this);
allNumber.add(et3);

然后我将它们组合成一个字符串数组

String[] stringsDat = new String[allDates.size()];
String[] stringsNum = new String[allNumber.size()];

for (int i = 0; i < allDates.size(); i++) {
   stringsDat[i] = allDates.get(i).getText().toString();
   stringsNum[i] = allNumber.get(i).getText().toString();
}

List<String> stringsAll = new ArrayList<>();

Collections.addAll(stringsAll, stringsDat);
Collections.addAll(stringsAll, stringsNum);

String[] finalArray = stringsAll.toArray(new String[stringsAll.size()]);

然后保存为FileWriter

的txt文件
FileWriter writer = new FileWriter(getExternalStorageDirectory() + "sample.txt");
for (String stringsAllAll : finalArray) {
writer.write(stringsAllAll);
}

它工作正常但我的问题是我在一行之后得到了文本。我一行一行地需要它们,例如:

现在看起来像这样:

  

2016-12-27 2016-12-27 2016-12-27 2016-12-27 2016-12-27 41 12 33 66 59

它看起来应该是这样的

  

2016-12-27 41

     

2016-12-27 12

     

2016-12-27 33

     

2016-12-27 66

     

2016-12-27 59

那么,有没有办法做到这一点?或者这是一个糟糕的方法?获取每个TableRow的内容会更容易,但我无法弄清楚如何做到这一点。你能救我吗?

2 个答案:

答案 0 :(得分:0)

使用String.split().

String multiLines = edittext.getText().toString();
String delimiter = "\n"; 

或您认为需要的任何分隔符,空格键,下划线等

streets = multiLines.split(delimiter);

答案 1 :(得分:0)

在文件中写入数据时添加换行符。我假设你的两个数组(stringsDat和stringsNum)都有相同数量的数据。

for(int count = 0 ; count < stringsDat.length() ; count++) {
   // Output will be - 2016-12-27 41 
   writer.write(stringsDat[i] + " " + stringsNum[i] + "\n");
}