2012-04-12 184 views
-3

我是Android新手。我試圖編寫一個if語句的方法。我試圖發生的是「如果Textview中的文本等於某個值,則更改佈局中的背景圖像」。我知道設置背景位的作品,我已經把問題縮小到了If語句。在下面的代碼中,showBook是一個TextView,tvString是保存showBook的值的字符串。 bgview是佈局ID。在Android中寫「if」語句

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

的問題是它不希望與字符串 「約翰」 來比較bookDisp行

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

。然而,如果我比較兩個textviews,例如

if(bookDisp.equals(newTextView)){ 

因此我認爲問題是.equals位。我會用什麼代碼來比較bookDisp和「John」?它不是if(bookDisp = ("John")){,因爲Eclipse希望我將bookDisp更改爲字符串。那麼將textview bookDisp與字符串「John」進行比較的正確代碼是什麼?

別介意別人!我明白了,這個錯誤並不在這個方法中,而是在另一個方法中。我在該方法中使用了+ cursor.getString(1) + " ";,所以textviews中的字符串顯示爲「John」,上面的「if」語句正在查找「John」。

回答

2

你可能想使用:

bookDisp.getText().toString().equals("John"); 
12

使用此:

if ("John".equals(bookDisp.getText().toString())) { 
+0

實際上沒有理由把常量放在這裏,因爲你不會從函數中得到任何'null'結果。但仍然是很好的做法。 :) – vhallac 2012-04-12 17:25:50

0

更好的比較字符串像下面::

tvString.equals( 「約翰」);

0

您需要從TextView中獲取文本以查看它是否等於「John」。 do: bookDisp.getText()。equals(「John」)

這應該有效。 TextText的getText返回一個可編輯的。繼承人這個類,所以你可以使用它: Editable Class