gpt4 book ai didi

android - 检索以前的输入 Android

转载 作者:行者123 更新时间:2023-11-30 02:45:36 25 4
gpt4 key购买 nike

我目前正在从事一个需要我输入和存储用户输入的项目。有什么方法可以检索以前的记录而不是当前记录吗?

代码

package com.example;

// imports

public class Testing extends Activity {
String tag = "Testing";
EditText amount;

Uri rResult = null;

int request_Code = 1;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.testyourself);

amount = (EditText) findViewById(R.id.etUserInput);

Button saveButton = (Button) findViewById(R.id.btnSave);

saveButton.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent("com.example.Result");

Bundle extras = new Bundle();
extras.putString("amount", amount.getText().toString());


intent.putExtras(extras);

startActivityForResult(intent, request_Code);
}
});
}

protected void onDestroy() {
// TODO Auto-generated method stub
super.onDestroy();
}

protected void onPause() {
// TODO Auto-generated method stub
super.onPause();
saveAsText(); // Step E.1
Log.d(tag, "In the onPause() event");
}

protected void onRestart() {
// TODO Auto-generated method stub
super.onRestart();
}


protected void onResume() {
// TODO Auto-generated method stub
super.onResume();
retrieveText(); // Step E.1
Log.d(tag, "In the onResume() event");
}


protected void onStart() {
// TODO Auto-generated method stub
super.onStart();
}


protected void onStop() {
// TODO Auto-generated method stub
super.onStop();
}

public void saveAsText() {
String line = amount.getText().toString();

if (rResult != null)
line += "|" + rResult;

FileWriter fw = null;
BufferedWriter bw = null;
PrintWriter pw = null;

try {
String path = Environment.getExternalStorageDirectory().getPath();

fw = new FileWriter(path + "/exercise.txt");
bw = new BufferedWriter(fw);
pw = new PrintWriter(bw);
pw.println(line);

} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (pw != null)
pw.close();
if (bw != null)
bw.close();
if (fw != null)
fw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}// saveAsText

public void retrieveText() {
FileReader fr = null;
BufferedReader br = null;
try {
String line;
String path = Environment.getExternalStorageDirectory().getPath();
fr = new FileReader(path + "/exercise.txt");
br = new BufferedReader(fr);
line = br.readLine();

StringTokenizer st = new StringTokenizer(line, "|");

pullup.setText(st.nextToken());
bench.setText(st.nextToken());


String rResult;
if (st.hasMoreTokens())
rResult = st.nextToken();
else
rResult = "";

Log.d(tag, "readAsText: " + line);

} catch (Exception e) {
e.printStackTrace();
} finally {
try {
if (br != null)
br.close();
if (fr != null)
fr.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
}

结果页面

public class Result extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.results);

Bundle bundle = getIntent().getExtras();

int amount = Integer.parseInt(bundle.getString("amount"));

TextView ResultView = (TextView) findViewById(R.id.userInput);
ResultView.setText(String.valueOf(amount));


}
}

最佳答案

您可以使用 SharedPreferences 而不是写入文件,它允许您存储用户输入或统计信息等信息,直到明确删除。即使您关闭您的应用并重新打开它,您使用 SharedPreferences 保存的信息也会保留。

this question 的选定答案是为 SharedPreferences 创建帮助程序类的一个很好的示例,它将允许您轻松地保存、检索和删除信息。

假设你想保存一个int值。

如果您的助手类中的保存和检索方法是:

public void saveAmount(String key, int amount) {
_prefsEditor.putInt(key,amount);
_prefsEditor.commit();
}
public int getAmount(String key) {
return _sharedPrefs.getInt(key,0); //returns 0 if nothing is found
}

你有一个像这样的整数 ArrayList:

ArrayList<int> arrayList = new ArrayList<int>();
arrayList.add(123);
arrayList.add(231);
arrayList.add(312); //These are just placeholder values.

然后你可以创建一个循环来保存:

private AppPreferences _appPrefs;
.
.
.
for(int i = 0; i < arrayList.size(); i++) {
_appPrefs.saveAmount(i,arrayList.get(i));
}

请注意,在上述方法中,元素的键只是数组中元素的索引。

为了检索信息并重新创建 ArrayList,您还需要先在共享首选项中保存 ArrayList 的长度。

public void saveLength(int length) {
_prefsEditor.putInt("length", length);
_prefsEditor.commit();
}
public int getLength() {
return _sharedPrefs.getInt("length",0);
}

然后你可以创建一个循环来检索:

ArrayList<int> arrayList = new ArrayList<int>();
.
.
.
for(int i = 0; i < _appPrefs.getLength(); i++) {
arrayList.add(getAmount("" + i));
}

关于android - 检索以前的输入 Android,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25095469/

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