我已经创建了下面的示例代码来解释自己。我有一些EditText字段,需要将数据存储为"条目"供以后使用。我的问题是,将这三个变量存储为"列出的最佳方法是什么?#34;在另一项活动中。 (liAmount,liAccount和vID)。我只是想使用共享首选项,但即便如此,我将在同一个EditTexts上有多个条目,所以我真的不知道如何正确地序列化它们......
float liAmount;
String liAccount;
String vID;
btnSaveLineItem.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if(etLineItemAmount.length() == 0 || etAccountName.length() == 0) {
Toast.makeText(NewLineActivity.this, "Fill all fields.", Toast.LENGTH_LONG).show();
} else {
saveLineItem();
createVID();
}
}
});
public void createVID(){
vID = String.valueOf(liAccount.charAt(0) + liAccount.charAt(1) + liAccount.charAt(2) + liAmount);
}
public void saveLineItem(){
liAmount = Float.valueOf(etLineItemAmount.getText().toString());
liAccount = etAccountName.getText().toString();
}
编辑:我应该澄清,我确实希望这些数据文件能够长期存储。这些基本上将用于单独的活动文件中,以显示所有先前条目的列表。
答案 0 :(得分:1)
您可以使用SharedPreferences存储具有键值对的数据,然后在需要时检索相同的数据。这是一个示例代码。
Editor editor = sharedpreferences.edit();
editor.putString("key", "value");
editor.commit();
要获取存储的值,请使用类似
的内容SharedPreferences prefs = getSharedPreferences(this);
String restoredText = prefs.getString("key", null);
答案 1 :(得分:0)
您可以使用应用程序类临时保存数据。如果您只想存储字符串列表或ArrayList
以将值存储为键值对,则声明HashMap
。像这样,在自定义应用程序类中声明
private ArrayList<String> temp;
public ArrayList<String> getTemp() {
return temp;
}
public void setTemp(ArrayList<String> temp) {
this.temp = temp;
}
然后在任何活动中调用((YourApplication)getActivity()).getTemp()
并从中添加或获取数据。