比较按钮文字

时间:2011-10-30 06:52:13

标签: android text button if-statement compare

好吧我的态度现在已经消失了......我试了30分钟才能让这个简单的事情发挥作用但是我失败了。也许是因为我直接开始使用android,没有java ...我之前研究过c ++,在c ++中,这很容易做到......

我在xml文件中有一个按钮:

   <Button android:text="Button" 
   android:layout_width="wrap_content" 
   android:id="@+id/button1" 
   android:layout_height="wrap_content" 
   android:layout_alignParentBottom="true" 
   android:layout_alignParentLeft="true" 
   android:layout_marginBottom="108dp">
   </Button>

在我的java文件中,我有一个这样的字符串:

   String test = new String();
   test = "google";

我已经为按钮设置了onclick监听器,所以没有问题。 我的问题是:

  Button buttonx = (Button)findViewById(R.id.button1);

如何比较onClick(onclick代码是否已经制作)buttonx的text =字符串测试是“google”。

我尝试使用getText,setText ......但没有...

3 个答案:

答案 0 :(得分:2)

行。首先要做的是:String在Java和C ++中是完全不同的。事实上,对象是全方位的。

String test = new String();
test = "google";

不符合你的想法。

这样做是创建一个新的空String对象并在test中存储对它的引用。下一行存储对test中常量字符串“google”的引用,并使您在上一行中构造的空String符合垃圾回收条件。这与C ++完全不同,其中第二行实际上会调用=类上的String运算符。您可以将Java中的所有内容都视为指针(但不是真的),因此Java中的赋值行为类似于C ++中的指针赋值(但不是真的)。​​

回到你的问题。

这样的事可能有用:

String test = "google";
Button b = ...;
if (test.equals(b.getText()) {
    // whatever
}

请记住,尽管Java和C ++共享一些语法相似性,但它们实际上是完全不同的语言。 Java引用有点像指针,但不是真的。

真。

答案 1 :(得分:1)

String test = new String();
test = "google";

Button buttonx = (Button)findViewById(R.id.button1);
if (test.equals(buttonx.getText())) {
    // it's equal
}

答案 2 :(得分:0)

if (button.getText().toString().equalsIgnoreCase(test))
  Toast.makeText(this, "Button text equals!", Toast.LENGTH_SHORT).show();
else
  Toast.makeText(this, "Button text is not the same.", Toast.LENGTH_SHORT).show();