好吧我的态度现在已经消失了......我试了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 ......但没有...
答案 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();