2016-12-26 5 views
-1

私はあなたの助けが必要です 私はこのアプリケーションをAndroidで構築していますが、Firebaseデータベースから1つの文字列データを取得し、内部条件を使用するために(IF)文を使用しようとすると、コンパイラは値の条件をチェックし、文を入力しません。 デバッグモードを使用して実行中のアプリケーションをチェックし、文字列に格納されている値が正しいか、ステートメントに問題がないかどうかを確認します。Android ifステートメントが何らかの理由でアクセスされていない

私は値で平等のための文字列を比較するために、問題

myRef.addValueEventListener(new ValueEventListener() { 
     public static final String TAG = "Testtttttttt"; 

     @Override 
     public void onDataChange(DataSnapshot dataSnapshot) { 
      // This method is called once with the initial value and again 
      // whenever data at this location is updated. 
      String value = dataSnapshot.getValue(String.class); 
      Log.d(TAG, "Value is: " + value); 
      if (value == "START") { 
       textView.setText(value); 


      } 
     } 
+0

使用value.equals( "START")の代わりに値== "START" –

+0

通常、とりわけJavaのOracleのページに掲載されている基準に従ってください。文字列比較では、常にstringVar.equals()メソッドを使用する必要があります。 – Manny265

答えて

2

使用

value.equals("START") 

を持っているコードの一部を追加しました。

==参照によって等しいかどうかをチェックします。これは、常にあなたのケースでは偽です。

詳細については、http://www.javatpoint.com/string-comparison-in-javaをお読みください。

あなたが使用する必要があります
1

myRef.addValueEventListener(new ValueEventListener() { 
    public static final String TAG = "Testtttttttt"; 

    @Override 
    public void onDataChange(DataSnapshot dataSnapshot) { 
     // This method is called once with the initial value and again 
     // whenever data at this location is updated. 
     String value = dataSnapshot.getValue(String.class); 
     Log.d(TAG, "Value is: " + value); 
     // correct compare string1.equals(string2) 
     if (value.equals("START")) { // You cant compare string1 == string2 
      textView.setText(value); 


     } 
    } 
関連する問題