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

我使用共享首选项将呼叫者详细信息存储在我的应用程序中,如下所示。每当有电话时,我都会保存呼叫者的以下详细信息。


 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 之外的其他方法吗?


浮云间
浏览 101回答 1
1回答

翻过高山走不出你

如果您只需要保存最多 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);}
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Java