0

我正在检查用户输入的数据以及已经设置的数据。例如,sqlite 中保存的数据为 60-80。如果用户输入是 88。我想用数据 60-80 检查用户输入是 88,这样我就可以提出适当的建议

帮我。

我确实喜欢这个

public String getRangeFromUserInput(int b1, int b2, int b3, int a1, int a2, int a3) {

    if 
       (((70<b1<<100)||(70<b2<<100)||(70<b3<<100))&&((70<a1<<135)||(70<a2<<135)||(70<a3<<135)))
        Toast.makeText(GlucoseAdd.this, "Your glucose level is at normal range", Toast.LENGTH_LONG).show();
    else if 
       (((50<b1<<60)||(50<b2<<60)||(50<b3<<60))&&((135<a1<<180)||(135<a2<<180)||(135<a3<<180)))
        Toast.makeText(GlucoseAdd.this, "You need to start diet. The diet should " +
                "also be low in fat and high in dietary fibre. Regular exercise " +
                "is important in maintaining balanced blood glucose levels.", Toast.LENGTH_LONG).show();
    else if 
        (((b1<50)||(b2<50)||(b3<50))&&((180<a1<<200)||(180<a2<<200)||(180<a3<<200)))
        Toast.makeText(GlucoseAdd.this, "You are in danger state.", Toast.LENGTH_LONG).show();
    return null;
}

但是当我输入数据时,都会提示第一个.. 为什么?

4

1 回答 1

0

由于存储在 DB 表中的数据是字符串格式,即 60-80,因此您需要使用以下代码将用户输入值(例如 88)转换为 ie 80-100:

public String getRangeFromUserInput(String userInput) {
    return getRangeFromUserInput(Integer.parseInt(userInput));
}

public String getRangeFromUserInput(int userInput) {

    if (userInput >= 60 && userInput < 80)
        return "60-80";
    else if (userInput >= 80 && userInput < 100)
        return "80-100";
    // ...more range checks

    return null;
}

现在,在查询的 where 子句中使用 getRangeFromUserInput() 方法的输出,它是一个字符串(例如 80-100),如下所示:

String where = "range = '" + getRangeFromUserInput("88") + "'";

假设列名是表中的范围。如果查询返回一行,那么您可以阅读与范围相对应的建议,使用

cursor.getString(cursor.getColumnIndex("advice"))

假设列名是您表中的建议

于 2013-02-28T15:43:15.680 回答