Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/393.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/182.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 从具有共享首选项的字符串创建arraylist_Java_Android_String_Arraylist - Fatal编程技术网

Java 从具有共享首选项的字符串创建arraylist

Java 从具有共享首选项的字符串创建arraylist,java,android,string,arraylist,Java,Android,String,Arraylist,我想知道如何获取保存在共享首选项中的简单字符串,然后保存这些字符串中的每一个并将其显示到数组列表中。用户将每天保存一次字符串。我希望字符串显示为数组列表。这是我正在使用的代码。我有“physical_fragment.java”(保存数据)和“MainActivity.java”(加载数据) PHSYICAL_FRAGMENT.JAVA public void save(View view){ Date date = new Date(); String stringD

我想知道如何获取保存在共享首选项中的简单字符串,然后保存这些字符串中的每一个并将其显示到数组列表中。用户将每天保存一次字符串。我希望字符串显示为数组列表。这是我正在使用的代码。我有“physical_fragment.java”(保存数据)和“MainActivity.java”(加载数据)

PHSYICAL_FRAGMENT.JAVA

    public void save(View view){

    Date date = new Date();
    String stringDate = DateFormat.getDateInstance().format(date);

    SharedPreferences sharedPreferences = getSharedPreferences("MyData", Context.MODE_PRIVATE);
    SharedPreferences.Editor editor =sharedPreferences.edit();
    editor.putString("result",String.format(stringDate, date) + " - " + text_view5.getText().toString());

    editor.commit();
    Toast.makeText(this, "Saved successfully!", Toast.LENGTH_LONG).show();

}
MAINACTIVITY.JAVA

    resultPhysical= (TextView) findViewById(R.id.home);

    SharedPreferences sharedPreferences = getSharedPreferences("MyData", Context.MODE_PRIVATE);
    String result= sharedPreferences.getString("result",DEFAULT);

    if (result.equals(DEFAULT))
    {
        Toast.makeText(this, "No data found", Toast.LENGTH_LONG).show();
    }
    else

        Toast.makeText(this, "Load Successful", Toast.LENGTH_LONG).show();
    resultPhysical.setText(result);


    }
我要说的是使用它

要将字符串列表转换为要存储在首选项中的JSON,请使用以下命令:

List<String> list = ...

Type type = new TypeToken<List<String>>(){}.getType();
String json = gson.toJson(list, type);
您可以执行以下操作:

SharedPreferences sharedPreferences = getSharedPreferences("MyData", Context.MODE_PRIVATE);
SharedPreferences.Editor editor =sharedPreferences.edit();

ArratList<String> dataList;
String data = "";
for(String itemData:dataList){
    data = itemData + String.format(stringDate, date) + " - " +  text_view5.getText().toString()+ "/";
    editor.putString(data);
}

editor.commit();

这有助于避免支持可能影响apk文件大小的库

您面临的问题是什么?我只看到了你试图做的事情的描述,但没有看到你陷入困境的地方。我没有尝试将其转换为数组列表,因为我不知道如何。我甚至不知道从哪里开始。我不熟悉编码:(我不清楚你想做什么,你能编辑你的帖子来添加一个(或多个)这样的字符串示例,以及填充后数组列表应该是什么样的吗?当它保存并加载“结果”时,我不希望只有一个结果。我希望每个结果都保存并显示为我刚刚在文本文档上编写的数组列表。您可以编辑它。我在代码中做了一些更改。检查oncedata=itemData+String.format(stringDate,date)+“-”+text_view5.getText().toString()+“/”,我在“(String itemData:dataList){”上收到一个错误和“editor.putString(data);”字符串列表,当然:-)你有一个用户添加的字符串列表,对吗?等等。我应该把所有这些都放在我的主要活动中吗?--对不起,我不熟悉编码的两种方法,为什么不。我很惊讶,这不是从头开始学习编码的最佳地方。我们会回答你的问题,但很难从一开始就教别人编码:-/我明白,因为我已经完成了我被你给我的代码迷住了。但是谢谢你的努力。
SharedPreferences sharedPreferences = getSharedPreferences("MyData", Context.MODE_PRIVATE);
SharedPreferences.Editor editor =sharedPreferences.edit();

ArratList<String> dataList;
String data = "";
for(String itemData:dataList){
    data = itemData + String.format(stringDate, date) + " - " +  text_view5.getText().toString()+ "/";
    editor.putString(data);
}

editor.commit();
String result= sharedPreferences.getString("result",DEFAULT);
String[] splited = str.split("/");