2016-01-28 50 views
0

我製作Android問題應用程序。我找不到正確的答案。答案清單。Android問題應用程序答案== MyAnswer不爲null

正確答案:String answer = quizList.get(position).getAnswer();

按鈕點擊:

buttonA.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 



      if (answer =="A"){ 

       lblsignboard.setText("Ok"); 

      } 
      else 
      { 

       lblsignboard.setText("No"); 


      } 
     } 
    }); 

答案= 「A」,但是這個代碼不工作。總是給出答案是否定的。

+1

[我如何在Java中比較字符串?](http://stackoverflow.com/questions/513832/how-do-i-compare-strings-in-java) –

+1

使用'平等的可能的複製()'來比較'字符串'。 'answer.equals(「A」);' –

+0

answer.equals(「A」)檢查值相等。 ==檢查對象/引用是否相等http://stackoverflow.com/a/513839/4252352 –

回答

0

你也可以使用這種方式,讓你的代碼工作,即使答案的關鍵是不同的情況。使用equals("A")equalsIgnoreCase("a")

buttonA.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (answer.equals("A") || equalsIgnoreCase("a")){ 
       lblsignboard.setText("Ok"); 
      }else{ 
       lblsignboard.setText("No"); 
      } 
     } 
    }); 
1

在Android中,我們使用的兩件事情比較字符串: 1等於:如果要比較的情況下,即使該字符串時使用。 2. equalsIgnoreCase:這僅用於內容比較。 這裏是小插圖,因爲它是如何工作的:

String myString = "heLLo"; 

    if(myString.equals("hello")) 
    { 
    System.out.print("equals"); 
    } 
    else if(myString.equalsIgnoreCase("hello")) 
    { 
     System.out.print("equalsIgnoreCase"); 
    } 

這裏equalsIgnoreCase將被打印。

3

當你比較Java中的字符串,總是用.equals

因爲函數(.equals)檢查字符串的實際內容,==操作符檢查是否引用的對象是相等的。

現在正在使用equalsignorecase進行更多的操作,您不必擔心搜索字符串處於上限或下限。

buttonA.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 
      if (equalsIgnoreCase("a")){ 
       lblsignboard.setText("Ok"); 
      }else{ 
       lblsignboard.setText("No"); 
      } 
     } 
    }); 
0

字符串只能通過.equals方法比較而不是==。此外,您必須檢查字符串是否爲空,因爲.equals方法可能會調用 nullpointerexception,您的應用程序可能會崩潰。

buttonA.setOnClickListener(new View.OnClickListener() { 
    @Override 
    public void onClick(View v) { 
     if(answer!=null &&(answer.equals("A")||equalsIgnoreCase("a"))) { 
      lblsignboard.setText("Ok"); 
     } else { 
      lblsignboard.setText("No"); 
     } 
    } 
}); 
相關問題