我正在使用以下代碼來保存共享首選項。getSharedPrefernces僅在另一個作業中正常返回null活動
sharedpreferences = getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
SharedPreferences.Editor editor = sharedpreferences.edit();
editor.clear();
editor.putString("NIC",nic);
editor.putString("fName",fName);
editor.putString("mName",mName);
editor.putString("lName",lName);
editor.putString("aNo",aNo);
editor.putString("lane",aLane);
editor.putString("city",aCity);
editor.putString("contactNo",contactNo);
editor.putString("regDate",regDate);
editor.putString("cardNo",cardNo);
editor.putString("balance",balance);
editor.commit();
使用以下代碼獲取配置文件活動中的共享首選項,並且它工作正常。
private void getPrefs() {
SharedPreferences userDetails = Profile.this.getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
id = userDetails.getString("NIC", "");
f_Name = userDetails.getString("fName", "");
m_Name = userDetails.getString("mName", "");
l_Name = userDetails.getString("lName", "");
contact_no = userDetails.getString("contactNo", "");
a_No = userDetails.getString("aNo", "");
a_Lane = userDetails.getString("lane", "");
a_City = userDetails.getString("city", "");
card_No = userDetails.getString("cardNo", "");
reg_Date = userDetails.getString("regDate", "");
}
但是,當我在另一個活動中使用相同的,它爲id返回null。
private void getPrefs() {
SharedPreferences userDetails = Travel.this.getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
id = userDetails.getString("NIC", "");
}
mainfest.xml
<activity
android:name=".Profile"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name">
<intent-filter>
<action android:name="com.example.pavsaranga.scat.PROFILE" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
<activity
android:name=".Travel"
android:configChanges="orientation|keyboardHidden|screenSize"
android:label="@string/app_name">
<intent-filter>
<action android:name="com.example.pavsaranga.scat.TRAVEL" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
任何人都可以請幫我解決這個問題呢?旅遊活動
public class Travel extends AppCompatActivity {
TableLayout tl;
StringBuilder sb;
String id, result;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.travel);
tl = (TableLayout)findViewById(R.id.tlTravel);
getPrefs();
Thread t1 = new Thread(new Runnable() {
@Override
public void run() {
getResponse();
}
});
t1.start();
}
private void getPrefs() {
SharedPreferences userDetails = getApplicationContext().getSharedPreferences("MyPrefs", Context.MODE_PRIVATE);
id = userDetails.getString("NIC", "");
}}
它不應該返回null。您已將回退字符串設置爲空字符串。也許你實際上保存了字符串'「null」'? –
不使用配置文件活動我可以查看設置的共享首選項 –
就像我說的,但沒有理由該字符串爲空。顯示完整的活動代碼,請 –