Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/365.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中,然后显示在ListView上?_Java_Android_Sharedpreferences - Fatal编程技术网

Java 如何将共享首选项数据保存到ArrayList中,然后显示在ListView上?

Java 如何将共享首选项数据保存到ArrayList中,然后显示在ListView上?,java,android,sharedpreferences,Java,Android,Sharedpreferences,我试图将密钥/值对数据从共享首选项复制到ArrayList,然后将其显示在ListView上,但在使用HashMap时,出现了以下错误“不兼容类型”: SharedPreferences sharedPref = getSharedPreferences("STData", Context.MODE_PRIVATE); //to edit the data or add data inside my file "STData" SharedPreferences.Editor editor =

我试图将密钥/值对数据从共享首选项复制到ArrayList,然后将其显示在ListView上,但在使用HashMap时,出现了以下错误“不兼容类型”:

SharedPreferences sharedPref = getSharedPreferences("STData",  Context.MODE_PRIVATE);
//to edit the data or add data inside my file "STData"
SharedPreferences.Editor editor = sharedPref.edit();

//create an Arraylist to store values from the sharedPref Object
ArrayList<String> STArrayList = new ArrayList<String>();

for (HashMap<String, String> map : STArrayList)

    for (Map.Entry<String, String> entry : map.entrySet())
    {
        editor.putString(entry.getKey(), entry.getValue());
        editor.commit();

        String savedPref = sharedPref.getString(entry.getKey(), "");
        STArrayList.add(savedPref);
        Toast.makeText(getApplicationContext(),savedPref, Toast.LENGTH_LONG).show();

    }
SharedReferences SharedReferences=GetSharedReferences(“STData”,Context.MODE\u PRIVATE);
//编辑数据或在我的文件“STData”中添加数据
SharedPreferences.Editor=sharedPref.edit();
//创建Arraylist以存储来自sharedPref对象的值
ArrayList STArrayList=新的ArrayList();
for(HashMap映射:STArrayList)
对于(Map.Entry:Map.entrySet())
{
putString(entry.getKey(),entry.getValue());
commit();
String savedPref=sharedPref.getString(entry.getKey(),“”);
STArrayList.add(savedPref);
Toast.makeText(getApplicationContext(),savedPref,Toast.LENGTH_LONG).show();
}

尝试以下方法:

    SharedPreferences sharedPref = getSharedPreferences("STData", Context.MODE_PRIVATE);
    //to edit the data or add data inside my file "STData"
    SharedPreferences.Editor editor = sharedPref.edit();

    //create an Arraylist to store values from the sharedPref Object
    ArrayList<String> STArrayList = new ArrayList<String>();
    Map<String, String> map = (Map<String, String>) sharedPref.getAll();

    for (Map.Entry<String, String> entry : map.entrySet()) {
        editor.putString(entry.getKey(), entry.getValue());
        editor.commit();

        String savedPref = sharedPref.getString(entry.getKey(), "");
        STArrayList.add(savedPref);
        Toast.makeText(getApplicationContext(), savedPref, Toast.LENGTH_LONG).show();
    }
SharedReferences SharedReferences=GetSharedReferences(“STData”,Context.MODE\u PRIVATE);
//编辑数据或在我的文件“STData”中添加数据
SharedPreferences.Editor=sharedPref.edit();
//创建Arraylist以存储来自sharedPref对象的值
ArrayList STArrayList=新的ArrayList();
Map Map=(Map)sharedPref.getAll();
对于(Map.Entry:Map.entrySet()){
putString(entry.getKey(),entry.getValue());
commit();
String savedPref=sharedPref.getString(entry.getKey(),“”);
STArrayList.add(savedPref);
Toast.makeText(getApplicationContext(),savedPref,Toast.LENGTH_LONG).show();
}
但我仍然不确定您想要实现什么-因为首先您从共享首选项中获取所有值,然后对其进行迭代,然后在该循环中再次将这些值放入共享首选项:
editor.putString(entry.getKey(),entry.getValue());
commit()
我认为以上几行是没有必要的


最后一件事——当您有不同的内容时,您必须确保您在共享首选项中保留的所有值都是字符串,然后
Map Map=(Map)sharedPref.getAll()将抛出ClassCastException。

尝试以下操作:

    SharedPreferences sharedPref = getSharedPreferences("STData", Context.MODE_PRIVATE);
    //to edit the data or add data inside my file "STData"
    SharedPreferences.Editor editor = sharedPref.edit();

    //create an Arraylist to store values from the sharedPref Object
    ArrayList<String> STArrayList = new ArrayList<String>();
    Map<String, String> map = (Map<String, String>) sharedPref.getAll();

    for (Map.Entry<String, String> entry : map.entrySet()) {
        editor.putString(entry.getKey(), entry.getValue());
        editor.commit();

        String savedPref = sharedPref.getString(entry.getKey(), "");
        STArrayList.add(savedPref);
        Toast.makeText(getApplicationContext(), savedPref, Toast.LENGTH_LONG).show();
    }
SharedReferences SharedReferences=GetSharedReferences(“STData”,Context.MODE\u PRIVATE);
//编辑数据或在我的文件“STData”中添加数据
SharedPreferences.Editor=sharedPref.edit();
//创建Arraylist以存储来自sharedPref对象的值
ArrayList STArrayList=新的ArrayList();
Map Map=(Map)sharedPref.getAll();
对于(Map.Entry:Map.entrySet()){
putString(entry.getKey(),entry.getValue());
commit();
String savedPref=sharedPref.getString(entry.getKey(),“”);
STArrayList.add(savedPref);
Toast.makeText(getApplicationContext(),savedPref,Toast.LENGTH_LONG).show();
}
但我仍然不确定您想要实现什么-因为首先您从共享首选项中获取所有值,然后对其进行迭代,然后在该循环中再次将这些值放入共享首选项:
editor.putString(entry.getKey(),entry.getValue());
commit()
我认为以上几行是没有必要的


最后一件事——当您有不同的内容时,您必须确保您在共享首选项中保留的所有值都是字符串,然后
Map Map=(Map)sharedPref.getAll()
将抛出ClassCastException。

您的ArrayList和HashMap具有相同的对象名STArrayList您正试图通过
HashMap
中的
HashMap
for(HashMap:STArrayList)
访问
ArrayList
,这是错误的。我是Android新手,我应该如何解决这个问题?您定义STArrayList,然后在不添加任何内容的情况下尝试对其进行迭代。您还尝试为(HashMap:STArrayList)执行此操作,而且它们的类型不同。
STArrayList
是一个
ArrayList
,因此循环通过它将返回一个
String
对象,而不是
HashMap
您的ArrayList和HashMap具有相同的对象名STArrayList您正试图通过
中的
HashMap
访问
ArrayList
(HashMap:STArrayList)
这是错误的。我是Android新手,我应该如何解决这个问题?您定义STArrayList,然后在不添加任何内容的情况下尝试对其进行迭代。您还尝试为(HashMap map:STArrayList)执行此操作,但它们的类型不同。
STArrayList
是一个
ArrayList
,因此循环通过它将返回一个
String
对象,而不是
HashMap