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