我正在创建一个应用程序,我可以在其中设置学校余额,并可以按专用按钮取消一定金额,具体取决于我购买的内容。我在平衡方面遇到了麻烦。我有办法将其更新为我想要的,但是在我终止应用程序后,我希望它在TextView
中保持不变。到目前为止,我已经能够将它保存到文件中,或者至少我希望在视频的帮助下将其保存到文件中。
我如何打开应用程序读取文本文件并将TextView
设置为等于文件中的内容?
submitBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String submitAmount = amountEnter.getText().toString();
balance.setText(submitAmount);
String myBalance = balance.getText().toString();
try {
FileOutputStream fou = openFileOutput("balance.txt",
MODE_WORLD_READABLE);
OutputStreamWriter osw = new OutputStreamWriter(fou);
try {
osw.write(myBalance);
osw.flush();
osw.close();
} catch (IOException e) {
e.printStackTrace();
}
} catch (FileNotFoundException e) {
e.printStackTrace();
}
}
});
答案 0 :(得分:1)
看到你的代码,我假设你知道如何在android中读/写文件。如果没有,那么从这里看。 https://stackoverflow.com/questions/12421814/how-can-i-read-a-text-file-in-android/您可以尝试以下代码。 readfile方法来自上层链接。您只需要在活动的onCreate方法中读取文件中的特定行/字符串。获取所需TextView的引用,然后将文本设置为TextView,如下所示。我希望它可以帮到你
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.your_layout);
String texts = readfile();
TextView textView = findViewById(R.id.text_view);
textView.setText(text);
}
private String readfile() {
File sdcard = Environment.getExternalStorageDirectory();
File file = new File(sdcard, "file.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) {
//You'll need to add proper error handling here
}
return text.toString();
}
答案 1 :(得分:1)
您可以将其保存在SharedPrefs中 将其更改为
submitBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String submitAmount = amountEnter.getText().toString();
balance.setText(submitAmount);
PreferenceManager.getDefaultSharedPreferences(getApplicationContext()).
edit().putString("balance", submitAmount).commit();
}
});
你可以通过
获得它String balance=PreferenceManager.getDefaultSharedPreferences(getApplicationContext())
.getString("balance","nothing_there");