Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/367.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 比较TextView和EditText值_Java_Android - Fatal编程技术网

Java 比较TextView和EditText值

Java 比较TextView和EditText值,java,android,Java,Android,我试图将EditText值与TextView进行比较,但总是得到“不匹配!” 这是比较两个值的错误方法吗 例如:我在TextView中存储了win,并在EditText中输入了相同的win,但获取不匹配 EditText editPassword; String strPassword; TextView lblPassword; String password; String strMatch; @Override public voi

我试图将EditText值与TextView进行比较,但总是得到“不匹配!

这是比较两个值的错误方法吗

例如:我在TextView中存储了win,并在EditText中输入了相同的win,但获取不匹配

    EditText editPassword;
    String strPassword;
    TextView lblPassword;
    String password;
    String strMatch;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.single_list_item);

        editPassword = (EditText) findViewById(R.id.editPassword);

        strPassword = editPassword.getText().toString();

        // getting intent data
        Intent in = getIntent();

        password = in.getStringExtra(TAG_PASSWORD);

        lblPassword = (TextView) findViewById(R.id.password_label);

        lblPassword.setText(password);

        strMatch= lblPassword.getText().toString();        

        btnSubmit = (Button) findViewById(R.id.btnSubmit);
        btnSubmit.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View arg0) {
                // TODO Auto-generated method stub
                if(strPassword.equals(strMatch))
                {
                  Toast.makeText(getApplicationContext(), "Match !",
                                    Toast.LENGTH_LONG).show();
                  editPassword.setText(null);
                }
                else 
                {
                  Toast.makeText(getApplicationContext(), "Does not match !",
                            Toast.LENGTH_LONG).show();
                }
            }
        });        
    }

Buttton

 strPassword = editPassword.getText().toString();
显示您的edittext值为空字符串表示使用

 strPassword = editPassword.getText().toString();
onClick()事件内部的行


想想你台词的顺序。首先在开始时为strPassword和strMatch分配一次,然后更改基础控件(甚至可以通过在GUI中编辑某些内容),但是onClick()方法仍然会比较最初存储在strPassword和strMatch中的值

试着替换

if(strPassword.equals(strMatch))

(或者将
toString()
附加到每个,我不记得是否需要
toString()

尝试下面的代码

if(strPassword.trim().equals(strMatch.trim()))

只是一句建议。了解如何在代码中设置断点并在调试模式下运行应用程序。这将允许您在应用程序运行时检查变量值,并了解它们不匹配的原因。请参阅此处的最佳解决方案。@kalyanpvs oop yes我同意,但为什么在onClick(…)中第一次edittext中没有数据..输入数据后,您将按下按钮..现在edittext中有数据..您得到的是..ohhh…onCreate()中的是EditText的初始值为空,因此如何能够与其他字段匹配,而不将任何数据输入EditText…无论如何,感谢您的帮助从EditText获取数据后,您只能执行所需的操作。在此之前,您不能..或者您可以直接使用硬编码设置数据。。
if(strPassword.equals(strMatch))
if(editPassword.getText().equals(lblPassword.getText()))
if(strPassword.trim().equals(strMatch.trim()))