[英]Why does Android EditText shows empty even though there is text entered?
I'm trying to test two EditText views to see if they contain the correct username and password. 我正在尝试测试两个EditText视图,以查看它们是否包含正确的用户名和密码。 The problem I'm having is the EditText inputs show "" even though I've entered the text into the views. 我遇到的问题是即使我已将文本输入视图,EditText输入仍显示为“”。 What am I doing wrong here? 我在这里做错了什么?
package com.example.cs984x.iteration_one;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.iteration_one);
Button btn1 = (Button) findViewById((R.id.button));
final EditText userName = (EditText) findViewById((R.id.editText));
final EditText pw = (EditText) findViewById((R.id.editText1));
final TextView result = (TextView) findViewById(R.id.textView3);
final String u = userName.getText().toString();
final String p = pw.getText().toString();
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if ((u.equals("Android")) && (p.equals("123123"))) {
result.setText("Success!");
}
else {
result.setText("Failed!");
}
}
});
You are initializing u and p during creation of your activity (at which point, the editText is empty). 您正在创建活动时初始化u和p(此时,editText为空)。 You need to fetch the values inside your event handler (inside onClick): 您需要获取事件处理程序内部的值(在onClick内部):
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if ((userName.getText().toString().equals("Android")) && (pw.getText().toString().equals("123123"))) {
result.setText("Success!");
}
else {
result.setText("Failed!");
}
}
});
The Issue: 问题:
u
, which was set at the initialization of the activity when the text was blank. 您正在检查u
,它是在文本空白时在活动初始化时设置的。 EditText userName = (EditText) findViewById((R.id.editText));
EditText pw = (EditText) findViewById((R.id.editText1));
TextView result = (TextView) findViewById(R.id.textView3);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String u = userName.getText().toString();
String p = pw.getText().toString();
if ((u.equals("Android")) && (p.equals("123123"))) {
result.setText("Success!");
}
else {
result.setText("Failed!");
}
}
});
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.