[英]Shared Preferences Issue? Android Java
嗨,我已經使用共享首選項將字符串存儲在“已驗證”中。 在主要活動上,我只需要能夠獲取字符串,它將在if語句中使用。 在經過驗證的活動中,我必須能夠在editText中輸入一個值,並且它將永久存儲該值(即使在關閉應用程序時也是如此),直到刪除該應用程序為止。 這是我的代碼,它當前不保存永久字符串。 我認為這可能與OnClickListner有關? 但我不確定。
主要活動
public class MainActivity extends Activity {
public static final String Verified = "";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);Context.MODE_PRIVATE);
SharedPreferences settings = getSharedPreferences(Verified, 0);
String value = settings.getString("key","");
if (MobileVerified.equals("")){
...
經過驗證的課程
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.verified);
Button VerifyCompleteButton = (Button) findViewById(R.id.VerifyCompleteButton);
VerifyCompleteButton.setOnClickListener(new View.OnClickListener()
{
public void onClick(View view)
{
String NumberString;
String Verified;
Bundle bundle = getIntent().getExtras();
NumberString = bundle.getString("NumberString");
Verified = bundle.getString("Verified");
//set String Verified permenantly
SharedPreferences settings = getSharedPreferences(Verified, 0);
SharedPreferences.Editor editor = settings.edit();
editor.putString("key", NumberString);
editor.commit();
}
});
}
對於崩潰,您應該提供stacktrace,但至少這是顯而易見的:
SharedPreferences settings = getSharedPreferences(Verified, 0);
在成員變量初始化階段,您將Activity
用作Context
為時過早。 將getSharedPreferences()
和以下getValue()
調用移至onCreate()
。
之后,請確保在兩個地方都將相同的首選項文件名傳遞給getSharedPreferences()
。 getSharedPreferences(Verified, ...)
似乎不是您所需要的,而是使用類似getSharedPreferences("verified", ...)
。
初始化SharedPreferences
對象內部onCreate()
之前代替onCreate()
如下面的方法...
SharedPreferences settings;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
settings = PreferenceManager.getDefaultSharedPreferences(this);
String value = settings.getString("key","");
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.