Java 为什么我不能比较这两个字符串?
出于某种原因,无论我在两个文本框中键入什么,我都会得到匹配的响应。 起初我使用==但这不起作用,所以我试着切换到如果a等于b 我还是被卡住了 请帮忙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
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,请查看或部分查看我的答案代码。