Java 如何处理来自SharedReferences getStringSet的数据?

Java 如何处理来自SharedReferences getStringSet的数据?,java,android,sharedpreferences,Java,Android,Sharedpreferences,我已将该集放入SharedReferences: Set<String> bodyClick = new HashSet<String>(); String panelMarked = new Boolean(panel.marked).toString(); String[] click = {panel.name,panelMarked,clickTimes}; String clickBody = Arrays.toString(click); bodyCli

我已将该集放入SharedReferences:

Set<String> bodyClick = new HashSet<String>();
String panelMarked = new Boolean(panel.marked).toString();

String[] click = {panel.name,panelMarked,clickTimes};

String clickBody = Arrays.toString(click);

bodyClick.add(clickBody);

sharedEditor.putStringSet("click", bodyClick);
Set bodyClick=newhashset();
字符串panelMarked=new Boolean(panel.marked).toString();
String[]click={panel.name,panelMarked,clickTimes};
字符串clickBody=Arrays.toString(单击);
单击主体。添加(单击主体);
putStringSet(“单击”,bodyClick);
我就是这样得到的:

Set<String> click = preferences.getStringSet("click", new HashSet<String>());

if(click != null){

    Iterator<String> iterator = click.iterator();

    while(iterator.hasNext()){
        String id = iterator.next();
    }   
}
Set click=preferences.getStringSet(“单击”,新建HashSet());
如果(单击!=null){
迭代器迭代器=单击.Iterator();
while(iterator.hasNext()){
String id=iterator.next();
}   
}
例如,这在字符串中:[左后挡泥板,false,0]

到目前为止,一切都很正常

但现在我想让每个元素都有自己的元素。如何获取字符串中的“左后fener”、字符串中的“false”和字符串中的“0”


有人可以发布一些代码吗?

为什么不使用String[Split?][1]

String id = iterator.next();
id = id.substring(1, id.length()-1)
String[] parts = id.split(",");
String part1 = parts[0]; // Left Near fender
String part2 = parts[1]; // false

为什么不使用字符串[Split?][1]

String id = iterator.next();
id = id.substring(1, id.length()-1)
String[] parts = id.split(",");
String part1 = parts[0]; // Left Near fender
String part2 = parts[1]; // false
我明白了:)

我的解决方案:

Set<String> click = preferences.getStringSet("click", new HashSet<String>());

if(click != null){

    Iterator<String> iterator = click.iterator();

    while(iterator.hasNext()){

        String id = iterator.next();

        int start = id.indexOf("[") + 1;
        int end = id.indexOf("]")-1;

        String items = String.copyValueOf(id.toCharArray(), start, end);

        String[] ary = items.split(",");
    }
}
Set click=preferences.getStringSet(“单击”,新建HashSet());
如果(单击!=null){
迭代器迭代器=单击.Iterator();
while(iterator.hasNext()){
String id=iterator.next();
int start=id.indexOf(“[”)+1;
int end=id.indexOf(“]”)1;
String items=String.copyValueOf(id.toCharArray(),start,end);
字符串[]ari=items.split(“,”);
}
}
我明白了:)

我的解决方案:

Set<String> click = preferences.getStringSet("click", new HashSet<String>());

if(click != null){

    Iterator<String> iterator = click.iterator();

    while(iterator.hasNext()){

        String id = iterator.next();

        int start = id.indexOf("[") + 1;
        int end = id.indexOf("]")-1;

        String items = String.copyValueOf(id.toCharArray(), start, end);

        String[] ary = items.split(",");
    }
}
Set click=preferences.getStringSet(“单击”,新建HashSet());
如果(单击!=null){
迭代器迭代器=单击.Iterator();
while(iterator.hasNext()){
String id=iterator.next();
int start=id.indexOf(“[”)+1;
int end=id.indexOf(“]”)1;
String items=String.copyValueOf(id.toCharArray(),start,end);
字符串[]ari=items.split(“,”);
}
}

ok这行得通,但字符串中也有括号“[]”。@silvia\u aut请尝试我答案的第二部分,我编辑了它不行。第一种解决方案是:part1=“[Left rear fender”…part2=“false”…part3=“0]”我是否不从中取出括号?好的,这是可行的,但我的括号“[]”也在字符串中。@silvia\u aut请尝试我答案的第二部分,我编辑了它不可行。第一种解决方案提供:part1=“[Left rear fender”…part2=“false”…part3=“0]”我是否不从中取出支架?如果您打算这样做,有一种使用子字符串的更有效方法,我更新了我的原始答案-它应该和你的方法一样工作,更少的混乱有一种更有效的方法使用子字符串如果你想这样做,我更新了我的原始答案-它应该和你的方法一样工作,更少的混乱