Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/354.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 为什么我不能比较这两个字符串?_Java_Android - Fatal编程技术网

Java 为什么我不能比较这两个字符串?

Java 为什么我不能比较这两个字符串?,java,android,Java,Android,出于某种原因,无论我在两个文本框中键入什么,我都会得到匹配的响应。 起初我使用==但这不起作用,所以我试着切换到如果a等于b 我还是被卡住了 请帮忙 package net.2TextboxesStringCompare; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android

出于某种原因,无论我在两个文本框中键入什么,我都会得到匹配的响应。 起初我使用==但这不起作用,所以我试着切换到如果a等于b

我还是被卡住了

请帮忙

package net.2TextboxesStringCompare;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;
import android.widget.EditText;

/*
 * 2TextboxesStringCompare
 */


public class Code8 extends Activity implements OnClickListener {

    Button accept;
    EditText numberStudents, numberStudents2;

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);


        numberStudents = new EditText(this);
        numberStudents2 = new EditText(this);

        // find our button in the UI by its ID
        accept = (Button)findViewById(R.id.accept);

        // set listeners for the button. Since our current class
        // implements the OnClickListener interface
        // we can simply pass the current object ("this") into
        // the listener. The appropriate method will therefore
        // be called when the event fires.
        accept.setOnClickListener(this);

    }

    /* implement an event handler that responds to click events */
    public void onClick(View v){
        String a = numberStudents.getText().toString();
        String b = numberStudents2.getText().toString();
        if( a.equals( b ) )
            Toast.makeText(getApplicationContext(), "Matches", 
            Toast.LENGTH_SHORT).show();
        else
            Toast.makeText(getApplicationContext(), numberStudents.getText()+" !=      
            "+numberStudents2.getText(), Toast.LENGTH_SHORT).show();
    }

}

您的编辑文本没有出现

使用此代码:

LinearLayout ll = (LinearLayout)findViewById(R.id.linLayout);
linLayout是main.xml中LinearLayout的id,请替换它

ll.setOrientation(LinearLayout.VERTICAL);

 numberStudents = new EditText(this);
 numberStudents2 = new EditText(this);

ll.addView(numberStudents);
ll.addView(numberStudents2);
或者,如果在XML布局中创建edittext,则使用:

numberStudents = (EditText)findViewById(R.id.et1);
numberStudents2  = (EditText)findViewById(R.id.et2);
比较部分:

if(a.trim().equals(b))
{
     // show toast
}

您的编辑文本没有出现

使用此代码:

LinearLayout ll = (LinearLayout)findViewById(R.id.linLayout);
linLayout是main.xml中LinearLayout的id,请替换它

ll.setOrientation(LinearLayout.VERTICAL);

 numberStudents = new EditText(this);
 numberStudents2 = new EditText(this);

ll.addView(numberStudents);
ll.addView(numberStudents2);
或者,如果在XML布局中创建edittext,则使用:

numberStudents = (EditText)findViewById(R.id.et1);
numberStudents2  = (EditText)findViewById(R.id.et2);
比较部分:

if(a.trim().equals(b))
{
     // show toast
}

看看这个代码。这是您必须检查字符串的方式,您将在提交或单击按钮时从编辑文本中获得这些字符串

package com.example.testr;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

    Button button1;
    EditText editText1, editText2;
    Context context;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        context=this;
        button1=(Button)findViewById(R.id.button1);

        editText1=(EditText)findViewById(R.id.editText1);
        editText2=(EditText)findViewById(R.id.editText2);



        button1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub



                if ((editText1.getText().toString().trim()).equals(editText2.getText().toString().trim())) {

                    Toast.makeText(context, "both are equal", 1000).show();
                }
                else
                {
                    Toast.makeText(context, "both are not  equal", 1000).show();
                }
            }
        });




    }



}

看看这个代码。这是您必须检查字符串的方式,您将在提交或单击按钮时从编辑文本中获得这些字符串

package com.example.testr;
import android.os.Bundle;
import android.app.Activity;
import android.content.Context;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class MainActivity extends Activity {

    Button button1;
    EditText editText1, editText2;
    Context context;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        context=this;
        button1=(Button)findViewById(R.id.button1);

        editText1=(EditText)findViewById(R.id.editText1);
        editText2=(EditText)findViewById(R.id.editText2);



        button1.setOnClickListener(new OnClickListener() {

            @Override
            public void onClick(View v) {
                // TODO Auto-generated method stub



                if ((editText1.getText().toString().trim()).equals(editText2.getText().toString().trim())) {

                    Toast.makeText(context, "both are equal", 1000).show();
                }
                else
                {
                    Toast.makeText(context, "both are not  equal", 1000).show();
                }
            }
        });




    }



}

您没有声明要使用哪个editText,基本上您正在比较两个数据相同但名称不同的字符串对象,这就是为什么它总是显示匹配项。若要更正此问题,请执行以下操作:

1.转到main.xml

2.创建editText,例如editText1和editText2

3.现在在您的代码中使用它们,如下所示

numberStudents = (EditText)findViewById(R.id.editTex1);
numberStudents2  = (EditText)findViewById(R.id.editTex2);

现在应该没问题了。

您没有声明要使用哪个editText,基本上您是在比较两个数据相同但名称不同的字符串对象,这就是为什么它总是显示匹配项。若要更正此问题

1.转到main.xml

2.创建editText,例如editText1和editText2

3.现在在您的代码中使用它们,如下所示

numberStudents = (EditText)findViewById(R.id.editTex1);
numberStudents2  = (EditText)findViewById(R.id.editTex2);

现在应该没问题了。

您在toast中看到了什么?您最好调试应用程序,我猜您正在比较之前设置它们的值,可以在比较之前打印这两个值并选中它表示匹配,无论您在哪里创建编辑文本?我可以看出,它们对任何人都是看不见的,那么你会如何比较它们呢?在布局文件中创建编辑文本,并引用它们,就像引用按钮一样。R.id.xx。然后你可以比较@科林吉莱斯:删除了我的答案。if和else分支中只有一条语句。所以这应该不是问题。您在toast中看到了什么?您最好调试应用程序,我猜您正在比较之前设置它们的值,可能是在比较之前打印两个值并检查它是否显示匹配,无论您在哪里创建edittext?我可以看出,它们对任何人都是看不见的,那么你会如何比较它们呢?在布局文件中创建编辑文本,并引用它们,就像引用按钮一样。R.id.xx。然后你可以比较@科林吉莱斯:删除了我的答案。if和else分支中只有一条语句。所以这应该不是问题。你没有声明要使用哪个editText,基本上,您正在比较两个数据相同但名称不同的字符串对象,这就是为什么它总是显示匹配项。要更正this@Abhilash:我假设Dan没有在问题代码中用xml创建edittext,请查看或部分查看我的答案代码。您没有声明要使用哪个edittext,基本上,您正在比较两个数据相同但名称不同的字符串对象,这就是为什么它总是显示匹配项。要更正this@Abhilash:我假设Dan不会在问题代码中以xml创建edittext,请查看或部分查看我的答案代码。