2013-08-16 3 views
-3

у меня есть этот код в моем андроида приложения:IF заявление в Java не работает

@Override 
protected void onProgressUpdate(byte[]... values) 
{ 
    if (values.length > 0) 
    { 
     String message = new String(values[0]); 

     boolean isConfig = message.contains("Messages"); 

     if (isConfig) 
     { 
       String configFile = message; 
     } 
     else 
     { 
      receiveTxt.setText(message); 
      Vibrator v = (Vibrator)getSystemService(Context.VIBRATOR_SERVICE); 

      if (vibrate) 
      { 
       v.vibrate(500); 
      } 
     } 
    } 
} 

Когда я шагая через код, он будет проходить первый, если заявление, но он никогда не будет шаг в второй оператор if/else. Это просто все время ... Любые идеи, почему?

Спасибо

+1

'if' работает хорошо :) Вы, вероятно, используете его неправильно. – Maroun

+0

действительно вам нужно 'byte' здесь, а не строка? –

+0

Если isConfig является ложным, он должен ввести оператор else, который не выполняется. И да, оператор IF работает хорошо, это название, которое я дал этому вопросу, немного вводит в заблуждение ... извините – vidriduch

ответ

3

Если работает fine.The логическое значение isConfig всегда ложно то почему поток код не заходя в ваш второй, если заявление.

Проверьте содержимое значений [0] с помощью отладчика.

+0

, даже если isConfig является ложным, он все равно должен ввести оператор else ... – vidriduch

+0

Да, он должен ... присоединить отладчик и отладить ваш код шаг за шагом. Тогда вы сможете найти проблему – Nargis

+0

, шаг за шагом будет всегда возьмите меня в закрывающей скобке первого оператора if. Если я поставлю точки останова на строках с помощью String configFile = message; и receiveTxt.setText (сообщение); он никогда не останавливается там ... – vidriduch

0

Ваша проблема здесь onProgressUpdate(byte[]... values), вы делаете двухмерный массив, который содержит один массив ваших байтов. Вместо этого используйте byte... и обрабатывайте его как массив.

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