Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/228.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 将EditText数据存储到稍后访问的文件/位置的最佳方法?_Java_Android_Android Edittext - Fatal编程技术网

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

Java 将EditText数据存储到稍后访问的文件/位置的最佳方法?,java,android,android-edittext,Java,Android,Android Edittext,我创建了下面的示例代码来解释我自己。我有几个EditText字段,需要将数据存储为“条目”以供以后使用。我的问题是,存储这三个变量以便在另一个活动中“列出”的最佳方式是什么。(liAmount、liAccount和vID)。我只是想使用共享首选项,但即使这样,我也会在同一个EditText上有多个条目,所以我真的不知道如何正确地序列化它们 float liAmount; String liAccount; String vID; btnSaveLineItem.setOnClickListen

我创建了下面的示例代码来解释我自己。我有几个EditText字段,需要将数据存储为“条目”以供以后使用。我的问题是,存储这三个变量以便在另一个活动中“列出”的最佳方式是什么。(liAmount、liAccount和vID)。我只是想使用共享首选项,但即使这样,我也会在同一个EditText上有多个条目,所以我真的不知道如何正确地序列化它们

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();
}

编辑:我应该澄清一下,我确实希望这些数据文件能够长期存储。这些基本上将在单独的活动文件中使用,以显示所有以前条目的列表。

您可以使用应用程序类临时保存数据。如果只想存储字符串列表,请声明
ArrayList
,或者声明
HashMap
将值存储为键值对。像这样,在自定义应用程序类中声明

private ArrayList<String> temp;

public ArrayList<String> getTemp() {
    return temp;
}

public void setTemp(ArrayList<String> temp) {
    this.temp = temp;
}
private ArrayList temp;
公共数组列表getTemp(){
返回温度;
}
公共void settmp(ArrayList temp){
this.temp=temp;
}

然后在任何活动中调用
((您的应用程序)getActivity()).getTemp()
,并从中添加或获取数据。

您可以使用SharedReferences将数据与键值对一起存储,然后在需要时检索相同的数据。下面是一个示例代码

Editor editor = sharedpreferences.edit();
editor.putString("key", "value");
editor.commit(); 
要获取存储的值,请使用以下内容

SharedPreferences prefs = getSharedPreferences(this); 
String restoredText = prefs.getString("key", null);

可能重复的FYI-没有最佳方法,因为没有最佳评级。每个人都用他喜欢的东西。这被称为基于意见,这通常是基于stackoverflow的主题