2014-03-24 3 views
0

내 안드로이드 코드에서 gcm intent.It에서 데이터베이스에 일부 데이터를 삽입하고 있습니다. 조건을 확인하지 않고 삽입 할 때 작동합니다 .Json 객체의 첫 번째 요소를 if 문 데이터로 확인하면 작동합니다. condition.please 나를 도와 주면SQLite 데이터베이스 데이터가 삽입되지 않습니다.

protected void onMessage(Context context, Intent intent) { 
     Log.i(TAG, "Received message"); 
     String message = intent.getExtras().getString("title"); 


     if (message == "instru"){ 
     String message1 = intent.getExtras().getString("price"); 
     String message2 = intent.getExtras().getString("price1"); 
     String message3 = intent.getExtras().getString("price2"); 
     String message4 = intent.getExtras().getString("price3"); 
     String message5 = intent.getExtras().getString("price4"); 
     DatabaseHandler1 db = new DatabaseHandler1(getApplicationContext()); 
     int count = db.getRowCount_1(); 
     if(count > 0){ 
      db.resetTables_1(); 
     } 
     db.addUser_1(message1,message2,message3,message4,message5); 
     } 
     else if(message == "signal"){ 
      //else { 
      String message1 = intent.getExtras().getString("date"); 
      String message2 = intent.getExtras().getString("name"); 
      String message3 = intent.getExtras().getString("buy"); 
      String message4 = intent.getExtras().getString("stop"); 
      String message5 = intent.getExtras().getString("tv"); 
      String message6 = intent.getExtras().getString("tp"); 
      String message7 = intent.getExtras().getString("res"); 
      DatabaseHandler1 db = new DatabaseHandler1(getApplicationContext()); 
      DatabaseHandler1 db = new DatabaseHandler1(getApplicationContext()); 
      int count = db.getRowCount_2(); 
      if(count > 0){ 
       db.resetTables_2(); 
      } 
      db.addUser_2(message1,message2,message3,message4,message5,message6,message7); 


     } 
     displayMessage(context, message); 
     // notifies user 
     generateNotification(context, message); 
    } 

다른 JSON 객체가 String을 비교하기 위해, 자바에서

$message = array(
"title" => "instru", 
"price" => $trade1, 
"price1" => "$trade2", 
"price2" => "$trade3", 
"price3" => "$trade4", 
"price4" => "$date"); 

$message = array(
     "title" => "signal", 
     "date" => $date1, 
     "name" => $signal_name, 
     "buy" => $price, 
     "stop" => $stop, 
     "tv" => $trig_value, 
     "tp" => $profit,  
     "res" => $result, 
    ); 
+0

사용 .'equals() http://stackoverflow.com/questions/ [I 자바에서 문자열을 비교하려면 어떻게합니까?] (의' – guptakvgaurav

+0

가능 중복됩니다 513832/how-do-i-compare-strings-in-java) – laalto

답변

1

을 받았다 몇 가지 오류를 생각 inserting.I되지 않습니다, 당신은대신 equals()를 사용할 필요가 (210)

if (message.equals("instru")) 
+0

감사합니다 ................ – user3256431

0

사용

message.equals("instru") 

대신

message == "instru" 

동일의 '메시지 == "신호"'

더 나은 유효 간다

사용

"instru".equals(message) 

상황

0

에서 message can be null` 두 개의 문자열을 비교

(message == "signal") 

를 사용하지 않기 때문에.

자바 프로그래밍에서 == 연산자를 사용하면 두 문자열을 비교할 때 나쁜 점이 있습니다. 따라서 등호() 또는 등식 IgnoreCase()을 사용해야합니다. 그래서

message.equals("signal") 

또는

message.equalsIgnoreCase("signal") 
관련 문제