gpt4 book ai didi

java - Android 在 TextView 中显示内部数据

转载 作者:行者123 更新时间:2023-12-01 14:18:05 26 4
gpt4 key购买 nike

我正在开发一个应用程序,我需要在内部存储中保存/读取我的文件。但它在同一个 TextView 中读取了我的所有数据。有人可以向我展示如何在 2 个 TextView 中显示数据,或者向我展示如何将一个数据放在其他数据下。

这是我保存数据的代码:

private void SaveMode() {

String FILENAME ;
String Strin1= textview1.getText().toString();
String String2= textview2.getText().toString();


EditText filename1 = (EditText) findViewById(R.id.filename);

FILENAME = filename1.getText().toString();
if (FILENAME.contentEquals("")){
FILENAME = "UNTITLED";
}



String1 = textview1.getText().toString();
String2= textview2.getText().toString();

FileOutputStream fos = null;


try {
fos = openFileOutput(FILENAME, Context.MODE_PRIVATE);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
try {
fos.write("Strin1.getBytes());
fos.write(String2.getBytes());
} catch (IOException e) {
e.printStackTrace();
}


try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}

这是我读取数据的代码:

private void getFilenames() {
String[] filenames = getApplicationContext().fileList();
List<String> list = new ArrayList<String>();
for(int i = 0; i<filenames.length; i++){
//Log.d("Filename", filenames[i]);
list.add(filenames[i]);
}
ArrayAdapter<String> filenameAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line, list);
spinner.setAdapter(filenameAdapter);
}

public void SpinnerClick(View v) {

String selectFile = String.valueOf(spinner.getSelectedItem());
openFile(selectFile);

}

private void openFile(String selectFile) {

showData = (TextView) findViewById(R.id.show_data);
TextView showData1 = (TextView) findViewById(R.id.show_data1);
String value = "";
FileInputStream fis;


try {
fis = openFileInput(selectFile);
byte[] input = new byte[fis.available()];
while(fis.read(input) != -1){

value += new String(input);
fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
showData.setText(value);
}

编辑我尝试像这样编辑我的读取代码,但没有成功

private void openFile(String selectFile) {

TextView showData = (TextView) findViewById(R.id.show_data);
TextView showData2 = (TextView) findViewById(R.id.show_data2);
String value = "";
String[] strArray = value.split(";");

try {
FileInputStream fis = openFileInput(selectFile);
byte[] input = new byte[fis.available()];
while(fis.read(input) != -1){


value += new String(input);
}

fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
showData.setText(value);
showData.setText(strArray[0]);
showData2.setText(strArray[1]);
}

编辑2

让它与 Shobhit Puri 代码一起使用

最佳答案

首先,在保存数据时,您可以在这两个字符串之间插入一个分隔符。确保分隔符不是您的 textView 中预期的分隔符。

保存时:

String string3 = ";";

try {
fos.write("Strin1.getBytes());
fos.write("String3.getBytes());
fos.write(String2.getBytes());
} catch (IOException e) {
e.printStackTrace();
}

然后,当您尝试将其读入 value 字符串时,则使用 .split 函数进行拆分。例如:

String[] strArray =  value.split(";");

strArray[0] 将给出第一个 textview 的字符串,strArray[1] 将给出第二个。

更新

private void openFile(String selectFile) {

TextView showData = (TextView) findViewById(R.id.show_data);
TextView showData2 = (TextView) findViewById(R.id.show_data2);
String value = "";

try {
FileInputStream fis = openFileInput(selectFile);
byte[] input = new byte[fis.available()];
while(fis.read(input) != -1){


value += new String(input);
}

fis.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
String[] strArray = value.split(";");

showData.setText(strArray[0]);
showData2.setText(strArray[1]);
}

关于java - Android 在 TextView 中显示内部数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17923610/

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