检查用户输入时出错

时间:2017-08-29 22:36:46

标签: android onclicklistener

我试图检查editText条件。在下面的代码中,我声明了一个setOnClickListener方法来检查editText的条件。如果条件为真,我想打印吐司信息,更改活动并输出声音。如果条件失败,它应该举报一条消息。在这两种情况下,如果它的真实与否,它只打印我" Incorect"无论editText是否正确。

我做错了什么?

    public void next(View v){

    final MediaPlayer correctSound = MediaPlayer.create(this, R.raw.correctsound);
    Button playCorrectSound = (Button) this.findViewById(R.id.angry_btn1);

    final EditText editTextt = (EditText) findViewById(R.id.editText);

    playCorrectSound.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {

            editTextt.setVisibility(View.INVISIBLE);
            if(editTextt.getText().toString() == "string")
            {
                Toast.makeText(getApplicationContext(), "Correct", Toast.LENGTH_SHORT).show();
                correctSound.start();
                Intent i = new Intent(Hereuu.this, MainActivity.class);
                startActivity(i);
            } else {
                Context context = getApplicationContext();
                CharSequence text = "Incorect";
                int duration = Toast.LENGTH_SHORT;
                Toast toast = Toast.makeText(context, text, duration);
                toast.show();
            }
            editTextt.setVisibility(View.VISIBLE);

        }
    });

}

4 个答案:

答案 0 :(得分:0)

在java中,您需要使用equals方法而不是==来比较字符串 检查this topic for more details

答案 1 :(得分:0)

我建议你参加一些基本的JAVA课程。那将极大地帮助你。

目前,问题在于检查字符串是否相等。您不使用==字符串,而是使用String#equals()方法。所以,

更改

editTextt.getText().toString() == "string"

editTextt.getText().toString().equals("string")

答案 2 :(得分:0)

确保将java中的字符串与atoms而不是.equals进行比较。使用if语句:

==

答案 3 :(得分:0)

就像每个人都说的那样,你

基本上,当您使用==运算符时,您正在检查对象的引用是否相同/等于。使用.equals(String)时,该方法会检查内容。

提示: 当您使用Strings时,请记住避免NullPointerException情况。因此,您应该写"constant".equals(editTextValue)而不是editTextValue.equals("constant")

下面的链接将帮助您了解String对象和字符串内容的工作原理:

Java String.equals versus ==

问候