java - 简单的 Android 密码检查器不起作用

标签 java android if-statement password-protection

我正在创建一个 Android 应用程序,将打开的第一个 Activity 是密码输入。要知道密码已经设置在值为“admit”的变量中。我创建了一个 if 语句来检查用户输入的值,然后将其与变量进行比较,如果值匹配,则转到主屏幕,但它一直说这是错误的密码。任何人都可以看一下我的代码并建议我是否出错了。

public class Password extends ActionBarActivity implements View.OnClickListener {
    protected String password = "admin";
    String getPassword;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_password);
        Button passwordButton = (Button) findViewById(passwordbutton);
        EditText passwordInput = (EditText) findViewById(R.id.password);
        getPassword = (passwordInput.getText().toString());
        passwordButton.setOnClickListener(this);

    }

    public void onClick(View v) {

        if (getPassword.equals(password)) {
            Intent goHome;
            goHome = new Intent(this, home.class);
            startActivity(goHome);
        } else {
             AlertDialog.Builder wrongPasswordBuilder = new AlertDialog.Builder(this);
            wrongPasswordBuilder.setTitle(getString(R.string.wrongPasswordTitle));
            wrongPasswordBuilder.setMessage(getString(R.string.wrongPasswordTryAgain));
            wrongPasswordBuilder.setPositiveButton("ok", null);
            AlertDialog dialog = wrongPasswordBuilder.show();
        }
    }

最佳答案

如果你在onCreate()中编写passwordInput.getText().toString(),它总是返回空字符串。因此,请在 onClick() 中写入这些行。代码写在下面

public void onClick(View v) {
getPassword = passwordInput.getText().toString()
if (getPassword.equals(password)) {
    Intent goHome;
    goHome = new Intent(this, home.class);
    startActivity(goHome);
} else {
     AlertDialog.Builder wrongPasswordBuilder = new AlertDialog.Builder(this);
    wrongPasswordBuilder.setTitle(getString(R.string.wrongPasswordTitle));
    wrongPasswordBuilder.setMessage(getString(R.string.wrongPasswordTryAgain));
    wrongPasswordBuilder.setPositiveButton("ok", null);
    AlertDialog dialog = wrongPasswordBuilder.show();
       }
}

关于java - 简单的 Android 密码检查器不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28153246/

相关文章:

android - 我如何知道我的共享库是否正在被使用?

java - 当 10Mb 空闲时,Android 分配 4Mb 时出现 OutOfMemoryError

mysql 仅当一个字段为空时才进行多次更新

python - 如何在列表理解中使用多个条件子句?

java - 如何解决 "cannot find symbol"包中的 Timeout.seconds() 方法生成的 "org. junit.rules.Timeout"错误?

java - 如何在Java中使用掩码计算数组的聚合?

java - 查询 Facebook 时停止工作线程

javascript - 基于 Javascript if else 语句更改样式表

java - 检测消息更新失败

java - HTTP 状态 500 - Servlet Jersey Web 应用程序的 Servlet.init() 引发异常