在if语句中使用getIntent函数

时间:2014-12-21 15:17:55

标签: java android

这就是我正在做的事情

第一项活动

public void onClick(View v) {
            Intent intent = new Intent(TeamsActivity.this,PakistaniPlayers.class).putExtra("StringName","hello");
            startActivity(intent);  
}

第二次活动

if(getIntent().getStringExtra("StringName")=="hello")
{
  TextView t=(TextView) findViewById(R.id.textView1);
  t.setText(getIntent().getStringExtra("StringName"));
}

现在if语句中的代码没有运行,但如果我单独运行if语句中的语句,我会显示hello。

2 个答案:

答案 0 :(得分:1)

正如@anil所说,你不能在java中比较这样的字符串。

String类有三个主要功能可以将两个字符串相互比较:

  • 等于
  • equalsIgnoreCase
  • 匹配
String test1 = "Hello";
String test2 = "hello";

test1.equalsIgnoreCase(test2); //isn't case-sensitive, so true.
test1.equals(test2); //is case-sensitive, so false.
test1.matches("[hH]ello"); //takes regexp, and will, in this case, be true.
test2.matches("[hH]ello"); //takes regexp, and will, in this case, be true.

一般提示:如果你不关心空白完全匹配,例如:"你好"也应该匹配"你好"我建议你始终test1.trim()你的字符串,特别是如果它的解析内容。

答案 1 :(得分:0)

正如@Panther所说,对于String类型,当你想要比较内容时,你应该使用equals。因此代码if(getIntent().getStringExtra("StringName").equals("hello"))有效,代码if(getIntent().getStringExtra("StringName")=="hello")则无效。

此外,您可以多次调用getExtra,它总是返回相同的值。