【问题标题】:Why does Android EditText shows empty even though there is text entered?为什么即使输入了文本,Android EditText 仍显示为空?
【发布时间】:2017-03-20 14:52:31
【问题描述】:

我正在尝试测试两个 EditText 视图,看看它们是否包含正确的用户名和密码。我遇到的问题是 EditText 输入显示“”,即使我已将文本输入到视图中。我在这里做错了什么?

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!");
            }
        }
    });

【问题讨论】:

标签: java android


【解决方案1】:

您在创建活动期间初始化 u 和 p(此时,editText 为空)。您需要在事件处理程序中(在 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!");
            }
        }
    });

【讨论】:

  • 做到了。谢谢,这将帮助我记住在初始化变量和测试变量时要注意。
【解决方案2】:

问题:

  1. 您正在检查 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!");
        }
    }
});

【讨论】:

  • 谢谢,我现在明白了……希望我不会再犯这个错误了。
猜你喜欢
  • 1970-01-01
  • 2011-08-29
  • 2020-02-21
  • 1970-01-01
  • 1970-01-01
  • 2021-08-23
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多