Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/186.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 获取用户名为&引用;_Java_Android - Fatal编程技术网

Java 获取用户名为&引用;

Java 获取用户名为&引用;,java,android,Java,Android,我正在尝试开发登录页面,但当单击按钮时,它会将用户名显示为“” 当我尝试使用调试器调试代码时,它将valueUN和valuePW显示为“”,为什么会显示为“”?它应该显示我输入的内容 它不是问题获取编辑文本字段的值的重复,因为在该问题中,用户希望捕获在编辑文本中输入的值,而mmy的问题是编辑文本没有显示正确的值问题就在这里 EditText editText1=(EditText)findViewById(R.id.userName); final String valueUN= editTex

我正在尝试开发登录页面,但当单击按钮时,它会将用户名显示为“”

当我尝试使用调试器调试代码时,它将valueUN和valuePW显示为“”,为什么会显示为“”?它应该显示我输入的内容

它不是问题获取编辑文本字段的值的重复,因为在该问题中,用户希望捕获在编辑文本中输入的值,而mmy的问题是编辑文本没有显示正确的值

问题就在这里

EditText editText1=(EditText)findViewById(R.id.userName);
final String valueUN= editText1.getText().toString();
您在创建用户名的同时将其值存储在
valueUN
中。您必须了解,创建
edittext
时,其初始值为
”。但是,当用户在其上写入内容,然后对其执行任何操作(例如,在您的案例中单击按钮)时,此时您应该从
edittext
获取当前值,而不是在创建时获取当前值

在代码中,尝试从
onClickListener()
方法中的edittext获取值

loginButton.setOnClickListener(new View.OnClickListener() {
    @Override

    public void onClick(View view) {

       String valueUN = editText1.getText().toString();
       String valuePW = editText2.getText().toString();
       if(valueUN.equals(userNameValue) && valuePW.equals(passwordValue)) {
           Toast.makeText(MainActivity.this, "Login was Successfully", Toast.LENGTH_SHORT).show();
       }
       else {
           Toast.makeText(MainActivity.this, "Username or password is incorrect", Toast.LENGTH_SHORT).show();
       }
    }
});

注意:不要使用
==
进行字符串比较。而是使用
equals()

valueUN==userNameValue
->是的,我应该使用equals()而不是==它解决了我的问题,我还应该编写最终字符串valueUN=editText1.getText().toString();最后一个字符串值pw=editText2.getText().toString();这是一个重复的方法,因为你应该看看这个问题的答案,然后用同样的方法来做。谢谢你解释EditText是如何工作的。它真的帮助了我。
loginButton.setOnClickListener(new View.OnClickListener() {
    @Override

    public void onClick(View view) {

       String valueUN = editText1.getText().toString();
       String valuePW = editText2.getText().toString();
       if(valueUN.equals(userNameValue) && valuePW.equals(passwordValue)) {
           Toast.makeText(MainActivity.this, "Login was Successfully", Toast.LENGTH_SHORT).show();
       }
       else {
           Toast.makeText(MainActivity.this, "Username or password is incorrect", Toast.LENGTH_SHORT).show();
       }
    }
});