为了账号安全,请及时绑定邮箱和手机立即绑定

如何在共享首选项中分配唯一的字符串值

如何在共享首选项中分配唯一的字符串值

浮云间 2023-10-13 09:45:27
我使用共享首选项将呼叫者详细信息存储在我的应用程序中,如下所示。每当有电话时,我都会保存呼叫者的以下详细信息。 sharedPrefCallLog = getSharedPreferences("CallLogPref", Context.MODE_PRIVATE);    editorCallLogPref = sharedPrefCallLog.edit();    editorCallLogPref.putString("name", Name);    editorCallLogPref.putString("num", Number);    editorCallLogPref.putString("city",City);     editorCallLogPref.apply();第一次通话一切正常。当收到第二个呼叫时,第一个呼叫的详细信息将被清除并替换为第二个呼叫。我怎样才能拯救一切?我想保存最近 10 个通话的详细信息吗?我应该使用sharedPref 之外的其他方法吗?
查看完整描述

1 回答

?
翻过高山走不出你

TA贡献1875条经验 获得超3个赞

如果您只需要保存最多 10 条通话记录(小数据集),那么共享首选项就可以了。


您需要为您的记录分配一个唯一的密钥。


private void saveCallLog(final int callRecordID){

    // key here is callRecordID

    sharedPrefCallLog = getSharedPreferences("CallLogPref", Context.MODE_PRIVATE);

    editorCallLogPref = sharedPrefCallLog.edit();

    editorCallLogPref.putString("name_"+ callRecordID, Name);

    editorCallLogPref.putString("num_"+ callRecordID, Number);

    editorCallLogPref.putString("city_"+ callRecordID,City);

    editorCallLogPref.apply();

}

要获取通话记录详细信息,请使用


private void getCallDetails(int callRecordID){

    sharedPrefCallLog.getString("name_"+ callRecordID, null);

    sharedPrefCallLog.getString("num_"+ callRecordID, null);

    sharedPrefCallLog.getString("city_"+ callRecordID, null);


}


查看完整回答
反对 回复 2023-10-13
  • 1 回答
  • 0 关注
  • 93 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信