2013-02-28 2 views
0

Я делаю проверку данных, вводимых пользователем с уже установленными данными. Как пример, сохранение данных в sqlite составляет 60-80. Если пользовательский ввод равен 88. Я хочу проверить пользовательский ввод, который равен 88 с данными 60-80, поэтому я могу получить соответствующий совет.Проверка ввода данных пользователем с набором параметров, sqlite android

Помогите мне.

я сделал, как этого

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; 
} 

но когда я вписываю данные все подскажут из первой .. Почему?

ответ

0

Поскольку данные, хранящиеся в вашей таблице БД, находятся в формате строки, т.е. 60-80 Таким образом, вам нужно будет преобразовать входное значение пользователя (например, 88) в 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; 
} 

Теперь использовать выход метода getRangeFromUserInput(), который является строкой (для экс 80-100.) в ИНЕКЕ запроса следующим образом:

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

Предполагая, что столбец имя диапазон in y наш стол. Если запрос возвращает строку, то вы можете прочитать советы, соответствующий диапазон, используя

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

Предполагая, что имя столбца является совет в таблице.

+0

ok. я попытаюсь, вернусь к вам – new

+0

, но мои данные в sqlite находятся в строке – new

+0

Это не должно быть проблемой, так как getRangeFromUserInput() возвращает строку. См. Мой отредактированный ответ. – appsroxcom

Смежные вопросы