如何在android中使用共享首选项比较两个字符串并执行操作

如何在android中使用共享首选项比较两个字符串并执行操作,android,android-studio,android-activity,Android,Android Studio,Android Activity,我已经创建了注册和登录表单。我的数据将存储在SharedReferences中。当我在登录表单中输入电子邮件和密码时,它应该与我在注册表单中提供的详细信息进行比较,并导航到另一个活动。但是,当我输入详细信息时,它没有按照我的预期工作,并显示我在Toast中提供的消息。下面是注册和登录文件 public class SignUp extends AppCompatActivity { EditText name,email,password,mobile,securityAnswer; Spin

我已经创建了注册和登录表单。我的数据将存储在
SharedReferences
中。当我在登录表单中输入电子邮件和密码时,它应该与我在注册表单中提供的详细信息进行比较,并导航到另一个
活动
。但是,当我输入详细信息时,它没有按照我的预期工作,并显示我在
Toast
中提供的消息。下面是注册和登录文件

 public class SignUp extends AppCompatActivity {
EditText name,email,password,mobile,securityAnswer;
Spinner spinner;
Button signup,clear;
public static SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sign_up);

    //Getting id's

    name = findViewById(R.id.name);
    email = findViewById(R.id.email);
    password = findViewById(R.id.pass);
    mobile=findViewById(R.id.number);
    securityAnswer=findViewById(R.id.spanswer);
    signup=findViewById(R.id.signup);
    clear=findViewById(R.id.clear);
    spinner=findViewById(R.id.spinner);

    //Creating file called UserDetails

    sp=getSharedPreferences("UserDetails",MODE_PRIVATE);

    //Questions to be inserted in spinner

    String[] questions={"Select security question","Who is your favourite actor","What is your first school name","Who is the founder of android","What was your first mobile number","What was your favourite childhood cartoon program"};
    ArrayAdapter adapter=new ArrayAdapter(getApplicationContext(),android.R.layout.simple_spinner_item,questions);
    spinner.setAdapter(adapter);

    //Setting Listener to submit button

    signup.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            //Getting the data from user

            String userName=name.getText().toString();
            String userEmail=email.getText().toString();
            String userPass=password.getText().toString();
            String userMobile=mobile.getText().toString();
            String userQuestion=spinner.getSelectedItem().toString();
            String userAnswer=securityAnswer.getText().toString();

            //Inserting the data into SharedPreference

            SharedPreferences.Editor editor=sp.edit();
            editor.putString("NAME",userName);
            editor.putString("EMAIL",userEmail);
            editor.putString("PASSWORD",userPass);
            editor.putString("MOBILE",userMobile);
            editor.putString("QUESTION",userQuestion);
            editor.putString("ANSWER",userAnswer);
            editor.commit();
            Toast.makeText(SignUp.this, "Data Submitted Successfully", Toast.LENGTH_SHORT).show();
            startActivity(new Intent(getApplicationContext(),Login.class));
        }
    });

    //Setting Listener to clear button

    clear.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            name.setText("");
            email.setText("");
            password.setText("");
            mobile.setText("");
            spinner.setSelection(0);
            securityAnswer.setText("");
        }
    });
}
}
注册代码:

 public class SignUp extends AppCompatActivity {
EditText name,email,password,mobile,securityAnswer;
Spinner spinner;
Button signup,clear;
public static SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sign_up);

    //Getting id's

    name = findViewById(R.id.name);
    email = findViewById(R.id.email);
    password = findViewById(R.id.pass);
    mobile=findViewById(R.id.number);
    securityAnswer=findViewById(R.id.spanswer);
    signup=findViewById(R.id.signup);
    clear=findViewById(R.id.clear);
    spinner=findViewById(R.id.spinner);

    //Creating file called UserDetails

    sp=getSharedPreferences("UserDetails",MODE_PRIVATE);

    //Questions to be inserted in spinner

    String[] questions={"Select security question","Who is your favourite actor","What is your first school name","Who is the founder of android","What was your first mobile number","What was your favourite childhood cartoon program"};
    ArrayAdapter adapter=new ArrayAdapter(getApplicationContext(),android.R.layout.simple_spinner_item,questions);
    spinner.setAdapter(adapter);

    //Setting Listener to submit button

    signup.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            //Getting the data from user

            String userName=name.getText().toString();
            String userEmail=email.getText().toString();
            String userPass=password.getText().toString();
            String userMobile=mobile.getText().toString();
            String userQuestion=spinner.getSelectedItem().toString();
            String userAnswer=securityAnswer.getText().toString();

            //Inserting the data into SharedPreference

            SharedPreferences.Editor editor=sp.edit();
            editor.putString("NAME",userName);
            editor.putString("EMAIL",userEmail);
            editor.putString("PASSWORD",userPass);
            editor.putString("MOBILE",userMobile);
            editor.putString("QUESTION",userQuestion);
            editor.putString("ANSWER",userAnswer);
            editor.commit();
            Toast.makeText(SignUp.this, "Data Submitted Successfully", Toast.LENGTH_SHORT).show();
            startActivity(new Intent(getApplicationContext(),Login.class));
        }
    });

    //Setting Listener to clear button

    clear.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            name.setText("");
            email.setText("");
            password.setText("");
            mobile.setText("");
            spinner.setSelection(0);
            securityAnswer.setText("");
        }
    });
}
}
登录代码:

 public class SignUp extends AppCompatActivity {
EditText name,email,password,mobile,securityAnswer;
Spinner spinner;
Button signup,clear;
public static SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sign_up);

    //Getting id's

    name = findViewById(R.id.name);
    email = findViewById(R.id.email);
    password = findViewById(R.id.pass);
    mobile=findViewById(R.id.number);
    securityAnswer=findViewById(R.id.spanswer);
    signup=findViewById(R.id.signup);
    clear=findViewById(R.id.clear);
    spinner=findViewById(R.id.spinner);

    //Creating file called UserDetails

    sp=getSharedPreferences("UserDetails",MODE_PRIVATE);

    //Questions to be inserted in spinner

    String[] questions={"Select security question","Who is your favourite actor","What is your first school name","Who is the founder of android","What was your first mobile number","What was your favourite childhood cartoon program"};
    ArrayAdapter adapter=new ArrayAdapter(getApplicationContext(),android.R.layout.simple_spinner_item,questions);
    spinner.setAdapter(adapter);

    //Setting Listener to submit button

    signup.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            //Getting the data from user

            String userName=name.getText().toString();
            String userEmail=email.getText().toString();
            String userPass=password.getText().toString();
            String userMobile=mobile.getText().toString();
            String userQuestion=spinner.getSelectedItem().toString();
            String userAnswer=securityAnswer.getText().toString();

            //Inserting the data into SharedPreference

            SharedPreferences.Editor editor=sp.edit();
            editor.putString("NAME",userName);
            editor.putString("EMAIL",userEmail);
            editor.putString("PASSWORD",userPass);
            editor.putString("MOBILE",userMobile);
            editor.putString("QUESTION",userQuestion);
            editor.putString("ANSWER",userAnswer);
            editor.commit();
            Toast.makeText(SignUp.this, "Data Submitted Successfully", Toast.LENGTH_SHORT).show();
            startActivity(new Intent(getApplicationContext(),Login.class));
        }
    });

    //Setting Listener to clear button

    clear.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            name.setText("");
            email.setText("");
            password.setText("");
            mobile.setText("");
            spinner.setSelection(0);
            securityAnswer.setText("");
        }
    });
}
}
public class Login extends AppCompatActivity {

//Declaring widgets

 EditText email,password;
 Button login,clear;
 TextView forgot;

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

    //Finding id's for each widget
    email=findViewById(R.id.loginemail);
    password=findViewById(R.id.loginpassword);
    login=findViewById(R.id.login);
    clear=findViewById(R.id.clearlogin);
    forgot=findViewById(R.id.forgotpassword);

    //Setting Listener to Login Button

    login.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            compareData();
        }
    });

    //Setting Listener to clear button

    clear.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            email.setText("");
            password.setText("");
        }
    });

    //Setting Listener to forgot password TextView

    forgot.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            startActivity(new Intent(getApplicationContext(),ForgotPassword.class));
        }
    });
}
public void compareData(){
    //Getting Text from user and converting to String

    String login_email=email.getText().toString();
    String login_password=password.getText().toString();

    //Getting the stored data from sharedPreferences given by user while sign up

    String sp_email=SignUp.sp.getString("EMAIL","Email is not available");
    String sp_pass=SignUp.sp.getString("PASSWORD","Password is incorrect");

    //Comparing email & password inserted by user while sign up and login
    //if same,navigate to home screen.If not,Display the message.

    if(login_email==sp_email){
        if(login_password==sp_pass){
            startActivity(new Intent(getApplicationContext(),HomeScreen.class));
        }
    }else{
        Toast.makeText(Login.this, "Please Enter Correct details", Toast.LENGTH_SHORT).show();
    }
}
}

您必须使用
String.equals()
而不是
=

 public class SignUp extends AppCompatActivity {
EditText name,email,password,mobile,securityAnswer;
Spinner spinner;
Button signup,clear;
public static SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sign_up);

    //Getting id's

    name = findViewById(R.id.name);
    email = findViewById(R.id.email);
    password = findViewById(R.id.pass);
    mobile=findViewById(R.id.number);
    securityAnswer=findViewById(R.id.spanswer);
    signup=findViewById(R.id.signup);
    clear=findViewById(R.id.clear);
    spinner=findViewById(R.id.spinner);

    //Creating file called UserDetails

    sp=getSharedPreferences("UserDetails",MODE_PRIVATE);

    //Questions to be inserted in spinner

    String[] questions={"Select security question","Who is your favourite actor","What is your first school name","Who is the founder of android","What was your first mobile number","What was your favourite childhood cartoon program"};
    ArrayAdapter adapter=new ArrayAdapter(getApplicationContext(),android.R.layout.simple_spinner_item,questions);
    spinner.setAdapter(adapter);

    //Setting Listener to submit button

    signup.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            //Getting the data from user

            String userName=name.getText().toString();
            String userEmail=email.getText().toString();
            String userPass=password.getText().toString();
            String userMobile=mobile.getText().toString();
            String userQuestion=spinner.getSelectedItem().toString();
            String userAnswer=securityAnswer.getText().toString();

            //Inserting the data into SharedPreference

            SharedPreferences.Editor editor=sp.edit();
            editor.putString("NAME",userName);
            editor.putString("EMAIL",userEmail);
            editor.putString("PASSWORD",userPass);
            editor.putString("MOBILE",userMobile);
            editor.putString("QUESTION",userQuestion);
            editor.putString("ANSWER",userAnswer);
            editor.commit();
            Toast.makeText(SignUp.this, "Data Submitted Successfully", Toast.LENGTH_SHORT).show();
            startActivity(new Intent(getApplicationContext(),Login.class));
        }
    });

    //Setting Listener to clear button

    clear.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            name.setText("");
            email.setText("");
            password.setText("");
            mobile.setText("");
            spinner.setSelection(0);
            securityAnswer.setText("");
        }
    });
}
}
所以改变这个

 public class SignUp extends AppCompatActivity {
EditText name,email,password,mobile,securityAnswer;
Spinner spinner;
Button signup,clear;
public static SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sign_up);

    //Getting id's

    name = findViewById(R.id.name);
    email = findViewById(R.id.email);
    password = findViewById(R.id.pass);
    mobile=findViewById(R.id.number);
    securityAnswer=findViewById(R.id.spanswer);
    signup=findViewById(R.id.signup);
    clear=findViewById(R.id.clear);
    spinner=findViewById(R.id.spinner);

    //Creating file called UserDetails

    sp=getSharedPreferences("UserDetails",MODE_PRIVATE);

    //Questions to be inserted in spinner

    String[] questions={"Select security question","Who is your favourite actor","What is your first school name","Who is the founder of android","What was your first mobile number","What was your favourite childhood cartoon program"};
    ArrayAdapter adapter=new ArrayAdapter(getApplicationContext(),android.R.layout.simple_spinner_item,questions);
    spinner.setAdapter(adapter);

    //Setting Listener to submit button

    signup.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            //Getting the data from user

            String userName=name.getText().toString();
            String userEmail=email.getText().toString();
            String userPass=password.getText().toString();
            String userMobile=mobile.getText().toString();
            String userQuestion=spinner.getSelectedItem().toString();
            String userAnswer=securityAnswer.getText().toString();

            //Inserting the data into SharedPreference

            SharedPreferences.Editor editor=sp.edit();
            editor.putString("NAME",userName);
            editor.putString("EMAIL",userEmail);
            editor.putString("PASSWORD",userPass);
            editor.putString("MOBILE",userMobile);
            editor.putString("QUESTION",userQuestion);
            editor.putString("ANSWER",userAnswer);
            editor.commit();
            Toast.makeText(SignUp.this, "Data Submitted Successfully", Toast.LENGTH_SHORT).show();
            startActivity(new Intent(getApplicationContext(),Login.class));
        }
    });

    //Setting Listener to clear button

    clear.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            name.setText("");
            email.setText("");
            password.setText("");
            mobile.setText("");
            spinner.setSelection(0);
            securityAnswer.setText("");
        }
    });
}
}
if(login_email==sp_email){
    if(login_password==sp_pass){
        startActivity(new Intent(getApplicationContext(),HomeScreen.class));
    }
}

 public class SignUp extends AppCompatActivity {
EditText name,email,password,mobile,securityAnswer;
Spinner spinner;
Button signup,clear;
public static SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sign_up);

    //Getting id's

    name = findViewById(R.id.name);
    email = findViewById(R.id.email);
    password = findViewById(R.id.pass);
    mobile=findViewById(R.id.number);
    securityAnswer=findViewById(R.id.spanswer);
    signup=findViewById(R.id.signup);
    clear=findViewById(R.id.clear);
    spinner=findViewById(R.id.spinner);

    //Creating file called UserDetails

    sp=getSharedPreferences("UserDetails",MODE_PRIVATE);

    //Questions to be inserted in spinner

    String[] questions={"Select security question","Who is your favourite actor","What is your first school name","Who is the founder of android","What was your first mobile number","What was your favourite childhood cartoon program"};
    ArrayAdapter adapter=new ArrayAdapter(getApplicationContext(),android.R.layout.simple_spinner_item,questions);
    spinner.setAdapter(adapter);

    //Setting Listener to submit button

    signup.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            //Getting the data from user

            String userName=name.getText().toString();
            String userEmail=email.getText().toString();
            String userPass=password.getText().toString();
            String userMobile=mobile.getText().toString();
            String userQuestion=spinner.getSelectedItem().toString();
            String userAnswer=securityAnswer.getText().toString();

            //Inserting the data into SharedPreference

            SharedPreferences.Editor editor=sp.edit();
            editor.putString("NAME",userName);
            editor.putString("EMAIL",userEmail);
            editor.putString("PASSWORD",userPass);
            editor.putString("MOBILE",userMobile);
            editor.putString("QUESTION",userQuestion);
            editor.putString("ANSWER",userAnswer);
            editor.commit();
            Toast.makeText(SignUp.this, "Data Submitted Successfully", Toast.LENGTH_SHORT).show();
            startActivity(new Intent(getApplicationContext(),Login.class));
        }
    });

    //Setting Listener to clear button

    clear.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            name.setText("");
            email.setText("");
            password.setText("");
            mobile.setText("");
            spinner.setSelection(0);
            securityAnswer.setText("");
        }
    });
}
}

如果您想检查邮件和传递,然后如果确定,请写下:

 public class SignUp extends AppCompatActivity {
EditText name,email,password,mobile,securityAnswer;
Spinner spinner;
Button signup,clear;
public static SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sign_up);

    //Getting id's

    name = findViewById(R.id.name);
    email = findViewById(R.id.email);
    password = findViewById(R.id.pass);
    mobile=findViewById(R.id.number);
    securityAnswer=findViewById(R.id.spanswer);
    signup=findViewById(R.id.signup);
    clear=findViewById(R.id.clear);
    spinner=findViewById(R.id.spinner);

    //Creating file called UserDetails

    sp=getSharedPreferences("UserDetails",MODE_PRIVATE);

    //Questions to be inserted in spinner

    String[] questions={"Select security question","Who is your favourite actor","What is your first school name","Who is the founder of android","What was your first mobile number","What was your favourite childhood cartoon program"};
    ArrayAdapter adapter=new ArrayAdapter(getApplicationContext(),android.R.layout.simple_spinner_item,questions);
    spinner.setAdapter(adapter);

    //Setting Listener to submit button

    signup.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            //Getting the data from user

            String userName=name.getText().toString();
            String userEmail=email.getText().toString();
            String userPass=password.getText().toString();
            String userMobile=mobile.getText().toString();
            String userQuestion=spinner.getSelectedItem().toString();
            String userAnswer=securityAnswer.getText().toString();

            //Inserting the data into SharedPreference

            SharedPreferences.Editor editor=sp.edit();
            editor.putString("NAME",userName);
            editor.putString("EMAIL",userEmail);
            editor.putString("PASSWORD",userPass);
            editor.putString("MOBILE",userMobile);
            editor.putString("QUESTION",userQuestion);
            editor.putString("ANSWER",userAnswer);
            editor.commit();
            Toast.makeText(SignUp.this, "Data Submitted Successfully", Toast.LENGTH_SHORT).show();
            startActivity(new Intent(getApplicationContext(),Login.class));
        }
    });

    //Setting Listener to clear button

    clear.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            name.setText("");
            email.setText("");
            password.setText("");
            mobile.setText("");
            spinner.setSelection(0);
            securityAnswer.setText("");
        }
    });
}
}
if(login_email.equals(sp_email) && login_password.equals(sp_pass))
   startActivity(new Intent(getApplicationContext(),HomeScreen.class));
else
   Toast...
如果电子邮件相等,但通过则代码无效

 public class SignUp extends AppCompatActivity {
EditText name,email,password,mobile,securityAnswer;
Spinner spinner;
Button signup,clear;
public static SharedPreferences sp;
@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_sign_up);

    //Getting id's

    name = findViewById(R.id.name);
    email = findViewById(R.id.email);
    password = findViewById(R.id.pass);
    mobile=findViewById(R.id.number);
    securityAnswer=findViewById(R.id.spanswer);
    signup=findViewById(R.id.signup);
    clear=findViewById(R.id.clear);
    spinner=findViewById(R.id.spinner);

    //Creating file called UserDetails

    sp=getSharedPreferences("UserDetails",MODE_PRIVATE);

    //Questions to be inserted in spinner

    String[] questions={"Select security question","Who is your favourite actor","What is your first school name","Who is the founder of android","What was your first mobile number","What was your favourite childhood cartoon program"};
    ArrayAdapter adapter=new ArrayAdapter(getApplicationContext(),android.R.layout.simple_spinner_item,questions);
    spinner.setAdapter(adapter);

    //Setting Listener to submit button

    signup.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            //Getting the data from user

            String userName=name.getText().toString();
            String userEmail=email.getText().toString();
            String userPass=password.getText().toString();
            String userMobile=mobile.getText().toString();
            String userQuestion=spinner.getSelectedItem().toString();
            String userAnswer=securityAnswer.getText().toString();

            //Inserting the data into SharedPreference

            SharedPreferences.Editor editor=sp.edit();
            editor.putString("NAME",userName);
            editor.putString("EMAIL",userEmail);
            editor.putString("PASSWORD",userPass);
            editor.putString("MOBILE",userMobile);
            editor.putString("QUESTION",userQuestion);
            editor.putString("ANSWER",userAnswer);
            editor.commit();
            Toast.makeText(SignUp.this, "Data Submitted Successfully", Toast.LENGTH_SHORT).show();
            startActivity(new Intent(getApplicationContext(),Login.class));
        }
    });

    //Setting Listener to clear button

    clear.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            name.setText("");
            email.setText("");
            password.setText("");
            mobile.setText("");
            spinner.setSelection(0);
            securityAnswer.setText("");
        }
    });
}
}