第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

Sharedpreferences 中的值輸入無(wú)效

Sharedpreferences 中的值輸入無(wú)效

慕妹3146593 2023-12-13 10:05:10
我通過(guò)@JavascriptInterface從webview獲取用戶值,這個(gè)沒有問題。接下來(lái)我將獲得的值記錄在首選項(xiàng)中,以供進(jìn)一步使用。然而,正如日志所示,值寫入不正確。我有什么錯(cuò)嗎?public class MainActivity extends AppCompatActivity        implements NavigationView.OnNavigationItemSelectedListener {    SharedPreferences sPref;    public static final String PREFS_FILE = "MyPrefsFile";    ................    public class WebAppInterface {        Context mContext;        WebAppInterface(Context c) {            mContext = c;        }        @JavascriptInterface        public void showUser(String data) {            Log.d("MyTAG", "INPUT: "+data);            ArrayList<String> stringArray = new ArrayList<String>();            JSONArray jsonArray;            try {                jsonArray = new JSONArray(data);                for (int i = 0; i < jsonArray.length(); i++) {                    stringArray.add(jsonArray.getString(i));                    Log.d("MyTAG", "i="+i+" :"+jsonArray.getString(i));                }                Log.d("MyTAG", "Array: "+stringArray);            } catch (JSONException e) {                e.printStackTrace();            }            sPref = getSharedPreferences(PREFS_FILE, 0);            SharedPreferences.Editor ed = sPref.edit();            ed.putString(NAME,stringArray.get(0));            ed.putString(AVATAR,stringArray.get(1));            ed.putString(USER_ID, stringArray.get(2));            ed.commit();            Log.d("MyTAG", "name="+sPref.getString(NAME, ""));            Log.d("MyTAG", "avatar="+sPref.getString(AVATAR, ""));            Log.d("MyTAG", "user_id="+sPref.getString(USER_ID, ""));        }    }}日志:D/MyTAG: INPUT: ["myname","src","2"]D/MyTAG: i=0 :mynameD/MyTAG: i=1 :srcD/MyTAG: i=2 :2D/MyTAG: Array: [myname, src, 2]D/MyTAG: name=srcD/MyTAG: avatar=srcD/MyTAG: user_id=2由于某種原因,含義更改為以下內(nèi)容。如何獲取偏好值name = myname
查看完整描述

1 回答

?
慕田峪9158850

TA貢獻(xiàn)1794條經(jīng)驗(yàn) 獲得超8個(gè)贊

嘗試這個(gè):


//SharedPreferences key names:

final String NAME = "name";

final String AVATAR = "avatar";

final String USER_ID = "user_id";

你看,傳遞給的putString()/getString()是變量的內(nèi)容。變量本身的名稱(例如,AVATAR)無(wú)關(guān)緊要。


NAME當(dāng)您為和傳遞空字符串(“”)時(shí)AVATAR,SharedPreferences您引用的條目稱為“”。所以你認(rèn)為你有兩個(gè)獨(dú)立的條目,但實(shí)際上你只有一個(gè),具有相同的名稱,并且它們互相破壞。


您選擇作為鍵名稱的值(例如“name”、“avatar”、“user_id”)是任意的,但它們會(huì)寫入文件SharedPreferences,并且對(duì)于在文本編輯器中讀取該文件的任何人都可見。因此,選擇描述性值會(huì)有所幫助。


查看完整回答
反對(duì) 回復(fù) 2023-12-13
  • 1 回答
  • 0 關(guān)注
  • 198 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)