2013-10-03 4 views
-5

Я новичок в android и создаю страницу регистрации. Поскольку андроид не поддерживает mysql, я создал скрипт на основе php, который выдает целочисленные значения для разных запросов.Android: Если оператор выскакивает, даже если условие верное

2 --> successful insertion in database 
-1 --> Email already used 
0--> username used 

В зависимости от целочисленного значения ответа, которое я получаю из сценария php, выполняю последующие задачи. Несмотря на то, что успешная вставка значений в базу данных и первый печатный элемент показывают значения Regresult как «2», оператор if не работает, а операторы if else работают нормально.

/* Getting the response back from the PHPAPI and storing it in a variable */ 
HttpEntity entity = Response.getEntity(); 
String Regresult = EntityUtils.toString(entity); 


/* printing value of Regresult to verify if the condition is right or wrong */ 
System.out.println(Regresult); 

/* Registration depending upon response from Http post call */  
/* Email used works fine when Regresult = -1 */ 

if(Regresult.equals("-1")) 
{ 
    Context text = getApplicationContext(); 
    CharSequence message = "Email already in use."; 
    int duration = Toast.LENGTH_SHORT; 
    Toast toast = Toast.makeText(text, message, duration); 
    toast.show(); 
} 

/* Username used work fine when Regresult = 0 */ 

else if(Regresult.equals("0")) 
{ 
     Context text = getApplicationContext(); 
     CharSequence message = "Username already in use."; 
     int duration = Toast.LENGTH_SHORT; 
     Toast toast = Toast.makeText(text, message, duration); 
     toast.show(); 
} 

/* Here is the problem when Regresult= 2 , even though consition is correct the statement don't get executed */ 
else if(Regresult.equals("2")) 
{ 
     Context text = getApplicationContext(); 
     CharSequence message = "Registration Successful."; 
     int duration = Toast.LENGTH_SHORT; 
     Toast toast = Toast.makeText(text, message, duration); 
     toast.show(); 
     System.out.println(Regresult); 
} 
+0

Спасибо, что работает! –

ответ

0
// I think it may be some spacing problem so try this way 
     if(Regresult.trim().equals("-1")){ 
      Context text = getApplicationContext(); 
      CharSequence message = "Email already in use."; 
      int duration = Toast.LENGTH_SHORT; 
      Toast toast = Toast.makeText(text, message, duration); 
      toast.show(); 
     }else if(Regresult.trim().equals("0")){ 
      Context text = getApplicationContext(); 
      CharSequence message = "Username already in use."; 
      int duration = Toast.LENGTH_SHORT; 
      Toast toast = Toast.makeText(text, message, duration); 
      toast.show(); 
     }else if(Regresult.trim().equals("2")) { 
      Context text = getApplicationContext(); 
      CharSequence message = "Registration Successful."; 
      int duration = Toast.LENGTH_SHORT; 
      Toast toast = Toast.makeText(text, message, duration); toast.show(); 
     } 
Смежные вопросы