输出始终不是女孩
。如何比较字符串 amruta?
请告诉我该声明是否正确。
我使用了明确的 Intent 并想要比较 2 个字符串。
即使我在 editText 字段中输入“amruta”,我也会得到不是女孩
。
package com.satish.explicitintents;
import android.os.Bundle;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
public class Main extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final EditText et = (EditText) findViewById(R.id.editText1);
Button b = (Button) findViewById(R.id.button1);
b.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent =new Intent(Main.this, Second.class);
intent.putExtra("thetext", et.getText().toString());
startActivity(intent);
}
});
}
}
-
import android.app.Activity;
import android.os.Bundle;
import android.widget.TextView;
public class Second extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.second);
TextView tv = (TextView) findViewById(R.id.textView1);
if (getIntent().getExtras().getString("thetext")== "amruta")
{
tv.setText("girl");
}
else
tv.setText("not a girl");
}
}
最佳答案
使用 equals()
方法代替 ==
运算符,如下所示...
if (getIntent().getExtras().getString("thetext").equals( "amruta")) {
tv.setText("girl");
} else {
tv.setText("not a girl");
}
您还可以使用equalsIgnoreCase()
方法。
String
的实例是对象,因此不能使用 ==
运算符比较两个对象。 ==
运算符用于与原始类型数据进行比较。要比较两个 String
,您必须使用 equals()
或 equalsIgnoreCase()
方法。
关于java - 在 Android 中使用显式 Intent 进行文本比较,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22377546/