-3

我是安卓新手。我正在尝试编写一个包含 if 语句的方法。我想要实现的是“如果 Textview 中的文本等于某个值,则更改布局中的背景图像。” 我知道设置背景位有效,我已将问题缩小到 If 语句。在下面的代码中,showBook 是一个 TextView,tvString 是保存 showBook 值的字符串。bgview 是布局 ID。

        String tvString = showBook.getText().toString(); 
    bookDisp.setText(tvString); 
    View mainbg = bgview.getRootView(); 
    if(bookDisp.equals("John")){ 
    mainbg.setBackgroundResource(R.drawable.dbvjohn);

问题是线

if(bookDisp.equals("John")){

它不想将 bookDisp 与字符串“John”进行比较。但是,如果我比较两个文本视图,它将起作用

if(bookDisp.equals(newTextView)){

所以我认为问题在于 .equals 位。我将使用什么代码将 bookDisp 与“John”进行比较?这不是if(bookDisp = ("John")){因为 Eclipse 要我将 bookDisp 更改为字符串。那么将 textview bookDisp 与字符串“John”进行比较的正确代码是什么?

别管人家!我想通了,错误根本不是这个方法,而是另一种方法。我有+ cursor.getString(1) + " ";那个方法,所以文本视图中的字符串显示为“John”,上面的“if”语句正在寻找“John”。

4

4 回答 4

12

用这个:

if ("John".equals(bookDisp.getText().toString())) {
于 2012-04-12T16:31:04.560 回答
2

您可能想使用:

bookDisp.getText().toString().equals("John");
于 2012-04-12T16:30:41.940 回答
0

最好比较如下字符串::

tvString.equals("约翰");

于 2012-04-12T16:32:13.687 回答
0

您需要从 TextView 获取文本以查看它是否等于“John”。做: bookDisp.getText().equals("John")

那应该行得通。TextViews 的 getText 返回一个可编辑的。这是该类,因此您可以使用它: Editable Class

于 2012-04-12T16:33:33.743 回答