繁体   English   中英

共享首选项中的用户名和密码存储

[英]Username and password store in shared preference

这是注册文件:

错误是当我存储数据之后,当我点击登录按钮应用程序被粉碎时登录。 这是登记部分;

 import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.Context;
    import android.content.Intent;
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class MainActivity extends AppCompatActivity {
        EditText textview1;
        EditText textview2;
        Button button1;
        Button buttonlog;
        SharedPreferences sharedPreferences;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            textview1 = (EditText)findViewById(R.id.ediuser);
            textview2 = (EditText)findViewById(R.id.edipassword);
            button1 = (Button)findViewById(R.id.btnreg);
            buttonlog = (Button)findViewById(R.id.onlogin);
    
        }
        public void onreg(View view){
            String username = textview1.getText().toString();
            String Password = textview2.getText().toString();
            sharedPreferences = getSharedPreferences("Dell", MODE_PRIVATE);
            SharedPreferences.Editor editor1 = sharedPreferences.edit();
            editor1.putString("username",username);
            editor1.putString("password",Password);
            editor1.apply();
            Toast.makeText(this, "Register Successfully", Toast.LENGTH_SHORT).show();
        }
        public void onlog(View view){
            Intent intent  = new Intent(this,login.class);
            startActivity(intent);
        }
    }
    
    this is the login file:
    package com.example.newshrd;
    
    import androidx.appcompat.app.AppCompatActivity;
    
    import android.content.SharedPreferences;
    import android.os.Bundle;
    import android.view.View;
    import android.widget.Button;
    import android.widget.EditText;
    import android.widget.Toast;
    
    public class login extends AppCompatActivity {
        EditText editText1;
        EditText editText2;
        Button button2;
        SharedPreferences sharedPreferences;
    
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_login);
            editText1 = (EditText) findViewById(R.id.userlog);
            editText2 = (EditText) findViewById(R.id.passwordlog);
            button2 = (Button) findViewById(R.id.btnlog);
            sharedPreferences = getSharedPreferences("Dell", MODE_PRIVATE);
        }
       //this is the login section find error and let me know please
    
         public void onloghere(View view){
        
            String userlog = editText1.getText().toString();
            String passlog = editText2.getText().toString();
           String userlogin= sharedPreferences.getString("username",null);
            String userpaswwords=sharedPreferences.getString("passowrd",null);
        
        
        
            if (userlog.contains(userlogin) && passlog.contains(userpaswwords)){
        
        
                Toast.makeText(this, "Your are in", Toast.LENGTH_SHORT).show();
            }
            else {
        
                Toast.makeText(this, "You are not", Toast.LENGTH_SHORT).show();
        
        
            }
        }
        
        }

请有人找到错误并让我知道我在这段代码中缺少什么。 它的格式正确(至少通过预览),那么我该如何解决这个问题? 我是 Stack Overflow 格式的新手。

保存时,密钥是“密码”:

editor1.putString("password",Password);

但是当获取时,这里的键“passowrd”有一个错字:

String userpaswwords=sharedPreferences.getString("passowrd",null);

你得到的用户密码是userpaswwords (你设置SharedPreferences.getString(String key, @Nullable String defValue) defValue value 为空),这里崩溃:

passlog.contains(userpaswwords)

因为String.contains(CharSequence s)需要参数为非空。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM