java - 我想在单击登录按钮后直接传递电子邮件和密码

标签 java android

我想将用户名和密码直接传递给另一个 Activity ,以便在单击登录按钮后自动登录。但是,我的代码只有在单击一次登录按钮后才能通过。我使用 Sharedpreferences 方法来保存用户名和密码。我有 mainactivity .java和loginactivtiy.java。如果我点击登录按钮,将用户名和密码传递给mainactivity以在webview中自动登录。我该怎么做?请帮助我。抱歉我的英语句子不好。

这是我的代码 Mainactivity.java

/* get email and password from memory for auto login*/

                Bundle b = getIntent().getExtras();

                String Username = b.getString("Username");
                String Password = b.getString("Password");
                Log.d("Username Check", "this username is " + Username);
                Log.d("Passowrd Check", "this password is " + Password);

                    StringBuilder sb = new StringBuilder();

                    sb.append("document.getElementById('signin-email').value = '" + Username + "';");
                    sb.append("document.getElementById('signin-password').value = '" + Password + "';");
                    sb.append("document.getElementById('login_frm_id').submit();");

                    sb.append("})()");

                    view.loadUrl("javascript:" + sb.toString());

            }

这是Loginactivity.java

  final  String username=  mEmailView.getText().toString();
    final  String password=  mPasswordView.getText().toString();


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

            Log.v("Username", "Username is " + username);
                /*encrypt password*/
                try {

                    Key key = AESHelper.generateKey();
                    byte[] encrypted = AESHelper.encrypt(password.getBytes(), key); //暗号化された
                    byte[] encrypt = AESHelper.decrypt(encrypted, key); //復号化した
                    String decrypted = new String(encrypt); //文字列に戻した

                    Log.v("EncryptDecrypt", "Encoded String " + encrypt);
                    Log.v("EncryptDecrypt", "Dncoded String " + decrypted);

                } catch (Exception e) {
                    e.printStackTrace();
                }


                savePreferences("storedName", mEmailView.getText().toString());
                savePreferences("storedPass", mPasswordView.getText().toString());


                Intent i =new Intent (LoginActivity.this,MainActivity.class);
                i.putExtra("flag", "add");
                startActivity(i);

                finish();



            if (username!=null && password!=null) {
                Bundle b = new Bundle();
                Intent intent= new Intent(LoginActivity.this, MainActivity.class);
                b.putString("Username", username);
                b.putString("Password", password);
                intent.putExtras(b);
                startActivity(intent);

            }else{

                Intent b =new Intent (LoginActivity.this,LoginActivity.class);
                startActivity(b);

            }


        }

    });

保存用户名和密码

 /*Saving username and password using sharedpreference*/
private void loadSavedPreferences() {

    SharedPreferences sharedPreferences = PreferenceManager
            .getDefaultSharedPreferences(getApplicationContext());
    String name = sharedPreferences.getString("storedName",mEmailView.getText().toString());
    String pass = sharedPreferences.getString("storedPass", mPasswordView.getText().toString());

    mEmailView.setText(name);
    mPasswordView.setText(pass);

}

private void savePreferences(String key, boolean value) {
        SharedPreferences sharedPreferences = PreferenceManager
                .getDefaultSharedPreferences(this);
        SharedPreferences.Editor editor = sharedPreferences.edit();
        editor.putBoolean(key, value);
        editor.commit();
    }

最佳答案

您可以通过保留 boolean 值优先来实现此目的。当用户第一次登录时设置其值true。在 onCreate 方法的主要 Activity 中检查此值。如果这是真的,只需将 Intent 传递给您的下一个 Activity 。否则要求用户登录。

关于java - 我想在单击登录按钮后直接传递电子邮件和密码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38867909/

相关文章:

java - 在调用它之前如何确保另一个线程的处理程序不为空?

android - 第一次在 android 中使用 SQLite 数据库。如何?

java - 使用spring分离测试和数据有什么缺点吗?

Java 自引用与继承

java - 计算 Java 数组中的非重复匹配对

iphone - Web 应用程序 GPS 轮询

java - 如何从类型推断参数中获取类?

java - IOException : socket write error

java - 当应用程序被杀死时如何停止接收通知?

java - 当 X、Y 位于屏幕中心上方时无法获得正确的颜色值