2013-10-19 17 views
0

我嘗試設置和存儲我的應用的密碼,但它根本不起作用。應該在第一次設置密碼後返回主頁,然後當用戶再次打開它時,密碼應該被存儲,但不知何故它不會存儲它。在Android應用中設置和存儲密碼

PreferenceManager.getDefaultSharedPreferences(this); 
    SharedPreferences passfile = getSharedPreferences("ans",0); 
    String pass = passfile.getString("ans", null); 

    check.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View v) { 
      // TODO Auto-generated method stub 

      String answer1 = answer.getText().toString(); 


      //Check that user typed in an answer 
      if(answer1.length()<8){ 
       Toast.makeText(CheckPwActivity.this, "Answer must be 8 characters long", Toast.LENGTH_SHORT).show(); 
       answer.setText(""); 
       answer.requestFocus(); 
       return; 
      } 
      answer.getEditableText().toString(); 
      //check if the answer is valid 
      if (answer1.equals("ans")) { 
       Intent intent2 = new Intent(CheckPwActivity.this,MainActivity.class); 
       startActivity(intent2); 


     }else{ 
      return; 

     } 


    }}); 



    } 
public void setPassword(String key, String value) { 
    SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 
    SharedPreferences.Editor editor = preferences.edit(); 
    Editor preferenceEditor = context.getSharedPreferences("password", 8).edit(); 
    preferenceEditor.putString(key, value); 
    preferenceEditor.commit(); 
} 

public static String getPassword(String filename) { 
    return context.getSharedPreferences("password", 2).getString(filename,""); 
} 
+0

我們如何知道您在set/get密碼方法中使用了相同的密鑰? –

回答

0

您使用的共享偏好錯了,在您所設定的密碼,你得到共享偏好,但隨後再次得到它,但在不同的上下文

這是所有你需要使用共享偏好

SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this); 
SharedPreferences.Editor editor = preferences.edit(); 

那麼當你想設置它,你使用編輯器你剛

editor.putString(key,pass).commit; 

然後從共享首選項中獲取它,您只需執行

preferences.getString(key,defaultString); 
相關問題