将EditText数据存储到稍后要访问的文件/位置的最佳方法?

时间:2017-07-04 06:41:01

标签: java android android-edittext

我已经创建了下面的示例代码来解释自己。我有一些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();
}
编辑:我应该澄清,我确实希望这些数据文件能够长期存储。这些基本上将用于单独的活动文件中,以显示所有先前条目的列表。

2 个答案:

答案 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()并从中添加或获取数据。