我在一个共享首选项中存储两个不同的项目时遇到问题

时间:2012-05-16 13:56:30

标签: java android sharedpreferences

public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.uniqueid);

    simID = (TextView) findViewById(R.id.text2);
    simIMSI = getSubscriberId().toString();
    simID.setText(simIMSI.toString());
    SaveUniqueId(simIMSI.toString());


    uniqueID = (TextView) findViewById(R.id.text4);
    identifier = UniqueIDTest().toString();
    uniqueID.setText(identifier.toString());
    SaveUniqueId(identifier.toString());

    next = (Button) findViewById(R.id.next);
    next.setOnClickListener(new View.OnClickListener() {
        public void onClick(View v) {
            Intent intent = new Intent(UniqueIdActivity.this, LockAppActivity.class);
            Toast.makeText(UniqueIdActivity.this, "Remember to keep the unique ID", Toast.LENGTH_LONG).show();
            startActivity(intent);              
        }
    });
}

public void SaveUniqueId(String value){
    final String UNIQUE_ID = "UniqueIdentifier";

    SharedPreferences unique = getSharedPreferences(UNIQUE_ID, 0);
    SharedPreferences.Editor editor = unique.edit();
    editor.putString("identifier", value);
    editor.commit();
}

public String getSubscriberId(){
    operator = (TelephonyManager)context.getSystemService(Context.TELEPHONY_SERVICE);
    String IMSI = operator.getSubscriberId();
    return IMSI;
}

public UUID UniqueIDTest(){    
    UUID ID = UUID.randomUUID();   
    return ID; 
}

}

我正在进行此活动,此活动将自动生成一个唯一的UUID以及检索SIM卡IMSI,如何在单个共享首选项上保存这两个项目...请帮我编写代码。感谢

2 个答案:

答案 0 :(得分:1)

see this link

在这个演示中,我保存名称并传递而不是这个,你可以保存UUID和IMSI。

答案 1 :(得分:1)

SharedPreferences使用一对一的Key:Value映射。您不能使用相同的密钥存储2个值。

您的选择是使用两个单独的键或将两个值组合成一个值。一种方法是通过字符串连接组合simIMSIUniqueID字符串:

String key = simIMSI + UniqueID