hared references-Sharedprefences存储字符数组

问题描述

Sharedprefences存储字符数组

用Sharedprefences存储字符数组,存储信息为名字,把所有的名字都保存起来,我是新手,希望有例子,谢谢~

解决方案

SharedPreferences sp = getSharedPreferences(PREFERENCES_NAME, Context.MODE_APPEND);
Set setUser = sp.getStringSet("setUser", new HashSet());//引号用的是key,自定义的,相当于一个目录
Editor editor = sp.edit();
setUser.add(userName);//userName 就是你要保存的名字信息
editor.commit();

调用的话跟上面第二句一样。

解决方案二:


/***

  • 该类定义了需要保存的登录用户信息
  • @author hyylj
  • */
    public class AccountInfoKeeper {

    private static final String PREFERENCES_NAME = "com_jingweibo_auther_info";

    // extends to auth info
    private static final String KEY_AUTH_ID = "auth_id";
    private static final String KEY_AUTH_PROFILE = "auth_profile";
    private static final String KEY_AUTH_NAME = "auth_name";
    private static final String KEY_AUTH_DESCRIPTION = "auth_description";

    public static void writeAuthInfoToken(Context context,AccountInfoBean token) {

    if(null == context || null == token){
        return;
    }
    
    SharedPreferences sp = context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_APPEND);
    Editor editor = sp.edit();
    
    if(null != token.getAutherId()){
        editor.putString(KEY_AUTH_ID, token.getAutherId());
    }
    if(null != token.getAutherName()){
        editor.putString(KEY_AUTH_NAME, token.getAutherName());
    }
    
    if(null != token.getAutherProfile()){
        editor.putString(KEY_AUTH_PROFILE, token.getAutherProfile());
    }
    
    if(null != token.getAutherDescription()){
        editor.putString(KEY_AUTH_DESCRIPTION, token.getAutherDescription());
    }
    
    editor.commit();
    

    }

    public static AccountInfoBean readAuthInfoToken(Context context){

    if(null == context){
        return null;
    }
    
    SharedPreferences sp = context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_APPEND);
    AccountInfoBean token = new AccountInfoBean();
    
    token.setAutherId(sp.getString(KEY_AUTH_ID, ""));
    token.setAutherName(sp.getString(KEY_AUTH_NAME, ""));
    token.setAutherProfile(sp.getString(KEY_AUTH_PROFILE, ""));
    token.setAutherDescription(sp.getString(KEY_AUTH_DESCRIPTION, ""));
    
    return token;
    

    }

    public static void clear(Context context){
    if(null == context){
    return;
    }

    SharedPreferences sp = context.getSharedPreferences(PREFERENCES_NAME, Context.MODE_APPEND);
    Editor ed =sp.edit();
    ed.clear();
    ed.commit();
    

    }

}

解决方案三:

sharedPreference本身是key-value存储的字典结构,你的需求的话可以考虑使用json或者像我下面的代码这样自定义规则字符串。
为了方便package和unpackage我这里使用了guava。


String[] strNames = {"hyy","kevin","joe","lily","mike"};

        //package
        Joiner stringJoiner = Joiner.on("|").skipNulls();
        String savedStr =  stringJoiner.join(strNames);

        System.out.println(savedStr);

        //save savedStr in sharedpreference

        //unpackage
        Splitter stringSplitter = Splitter.on("|");
        stringSplitter.trimResults();

        Iterable unpackageResult =  stringSplitter.split(savedStr);

        System.out.println(unpackageResult);


解决方案四:

没懂意思,自己太菜鸟了

时间: 2024-09-30 21:07:41

hared references-Sharedprefences存储字符数组的相关文章

c语言先用scanf初始化了一个字符指针,之后再定义字符数组出现内存不可读,在线等,急求

问题描述 c语言先用scanf初始化了一个字符指针,之后再定义字符数组出现内存不可读,在线等,急求 #include #include int main() { char*s; scanf("%s",s); //printf("%sn",s); //int n = strlen(s); //printf("%dn",n); char ret[56]; return 0; } 解决方案 s只是指针变量,没有分配内存 char*s; s = mall

字符数组与字符指针的问题

问题描述 字符数组与字符指针的问题 include int main(void) { char*str="hello"; return 0; } ///////////////////////////////我的疑惑是:为什么上面可以,下面的不可以? include int main(void) { char*str; scanf("%s",str); return 0; } 解决方案 唔..比如这样一段代码 通过调试得知指针变量s地址为0xbffff344:str

字符数组,字符指针,sizeof,strlen总结

先看下面这一段代码,读者可以自己思考一下,是否自己可以完全答对 // test.cpp : Defines the entry point for the console application. // #include "stdafx.h" #include <iostream> #include<cstdio> #include <string> using namespace std; struct{ short a1; short a2; s

c语言字符数组中回车符问题?

问题描述 c语言字符数组中回车符问题? //getline函数:将一行读入到S中并返回其长度 int getline(char s[] ,int length) { int c,i; for(i=0; i<length-1 && (c=getchar())!=EOF && c!='n';++i) s[i]=c; if(c == 'n'){ s[i] = c; ++i; } s[i]=''; return i; } 我想问一下,这里的if(c =='n')有什么用?我觉

字符指针和字符数组的使用区别

先看一个程序代码 #include<cstdio> #include<cstring> #include<iostream> #include<algorithm> using namespace std; int main(){ char str1[] = "abc"; char str2[] = "abc"; char *str3 = "abc"; char *str4 = "abc&

C++字符数组越界问题的一个案例分析

我的学生yang1067155909给我来信,说的是C++第11周项目3 - CEmployee类继承自CPerson类中的一个细节: 贺老师: 老师,m_szDepartment=new char[strlen(department)+1];为何需要+1呢?在测试里去掉+1后和这个效果一样啊,不太明白--求指教-- 学生,杨腾飞 我回答: 要给'\0'占个座.是用别人的地盘(越界的部分)保存了自己的信息了吧,不定哪次人家要用,运行结果就不一样了.这恰是最危险的问题. 他继续追问: 可是在定义字

初始化-C语言中,怎么把0写入到字符数组的某一位?

问题描述 C语言中,怎么把0写入到字符数组的某一位? 例如,想用一个for循环来初始化一个字符数组,大小100,数组的每一位的元素为其对应的下标,即:char DataItem08[100]: for( i=0;i<100;i++){ DataItem08[i] = i;} 可以发现sizeof(DataItem08)=0原因是DataItem[0]=0表示DataItem数组的第0位存储的是字符串结束符.有没有什么办法使得字符数组的某一位可以存放0? 求大神们赐教,谢谢! 解决方案 可以存放但

Java IO: 字节和字符数组

原文链接  作者: Jakob Jenkov   译者:homesick 内容列表 从InputStream或者Reader中读入数组 从OutputStream或者Writer中写数组 在java中常用字节和字符数组在应用中临时存储数据.而这些数组又是通常的数据读取来源或者写入目的地.如果你需要在程序运行时需要大量读取文件里的内容,那么你也可以把一个文件加载到数组中.当然你可以通过直接指定索引来读取这些数组.但如果设计成为从InputStream或者Reader,而不是从数组中读取某些数据的话

c语言字符数组与字符串的使用详解_C 语言

1.字符数组的定义与初始化字符数组的初始化,最容易理解的方式就是逐个字符赋给数组中各元素.char str[10]={ 'I',' ','a','m',' ','h','a','p','p','y'};即把10个字符分别赋给str[0]到str[9]10个元素如果花括号中提供的字符个数大于数组长度,则按语法错误处理:若小于数组长度,则只将这些字符数组中前面那些元素,其余的元素自动定为空字符(即 '\0' ). 2.字符数组与字符串在c语言中,将字符串作为字符数组来处理.(c++中不是)在实际应用