SQLite数据库数据未插入

时间:2014-03-24 10:37:42

标签: android json sqlite

在我的android代码中我从gcm intent插入一些数据到数据库。当我插入而没有检查任何条件时,它正在工作。当我检查接收到的json对象的第一个元素时if语句数据没有插入.I认为如果condition.please帮我一些错误

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对象

$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,
    );

3 个答案:

答案 0 :(得分:1)

在java中,要比较String,您需要使用equals()代替==

if (message.equals("instru"))

答案 1 :(得分:0)

使用

message.equals("instru")

而不是

message ==  "instru"

同样适用于' message ==" signal"'

更好

使用

  "instru".equals(message)

由于message can be在某些情况下为null

答案 2 :(得分:0)

不要使用

 (message == "signal")

用于比较两个字符串。

在Java编程中使用==运算符来比较两个字符串是坏事。因此,您需要使用 equals() equalsIgnoreCase() 。所以它将是

message.equals("signal")

message.equalsIgnoreCase("signal")