2013-10-21 2 views
0

Я выполняю свое задание, и я не уверен, почему оператор If не получает пароль, хранящийся в shredpreference, и сравнивается с паролем, введенным на этой странице. Я действительно хочу знать, какие переменные (ы) или определенные части (ы) я сделал неправильно? помогите ребятам !!!Почему введенный пароль не сравнивается в моей инструкции IF? (Sharedpreference)

package com.wheresmyphone; 

import android.os.Bundle; 
import android.app.Activity; 
import android.content.Intent; 
import android.content.SharedPreferences; 
import android.view.Menu; 
import android.view.View; 
import android.widget.Button; 
import android.widget.EditText; 
import android.widget.Toast; 

public class Check_Activity extends Activity { 

public static final String passwdfile = "passwd"; 

String passwd; 
private static final String PREF_PASSWORD = "PassWord"; 
protected EditText PassWordField; 
protected Button EnterButton; 

SharedPreferences sharedpref; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_check_); 

    final EditText userpassword = (EditText)findViewById(R.id.editText1); 

    Button b = (Button)findViewById(R.id.button1); 

    sharedpref = getSharedPreferences(passwdfile, 0); 





    b.setOnClickListener(new View.OnClickListener() { 

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

      String passwd = userpassword.getText().toString(); 
      SharedPreferences passwdfile = getSharedPreferences("passwd",0); 
      SharedPreferences.Editor editor = sharedpref.edit(); 
      editor.putString(PREF_PASSWORD, passwd); 
      editor.commit(); 
      //commit data 
      String storedpassword = passwdfile.getString(passwd, null) ; 


      if (passwd.equals(storedpassword)) { 

      startActivity(new Intent(Check_Activity.this, MainActivity.class)); 


       finish(); 




      }else { 
       Toast.makeText(Check_Activity.this, "Incorrect Password, Please try again!", Toast.LENGTH_LONG).show(); 
       return; 
      } 

     } 



     }); 
} 
+0

Пробовали ли вы отслеживание результата '' storedpassword' и password'? – kabuto178

+0

U означает, что я должен поставить if (password.equals (storedpassword)) {......} ?? – user2893221

ответ

2

Вы пытаетесь получить сохраненный пароль с неправильным ключом. То есть, изменение:

String storedpassword = passwdfile.getString(passwd, null); 

To:

String storedpassword = passwdfile.getString(PREF_PASSWORD, null); 
+0

спасибо большое, я могу запустить его правильно сейчас =] – user2893221

+0

и, как я могу ссылаться на пароль из предыдущего на страницу выше? пожалуйста помоги !! – user2893221

+0

@ user2893221: Извините, я не полностью следую ... предыдущий, что? 'SharedPreferences' предлагает постоянное хранилище, поэтому вы можете получить сохраненный пароль из любого места вашего приложения, если у вас есть доступ к экземпляру' Context' (например, 'Activity',' Service', 'Application' и т. Д.). –

Смежные вопросы