2013-04-10 4 views
0

Я читаю ответ от сервера, используя этот код.Как показать ответ HTTP в поле выбора объекта в Blackberry

public static String getContentString(HttpConnection Connection) throws IOException 
{ 
    String Entity=null; 
    InputStream inputStream; 
    inputStream = Connection.openInputStream();//May give network io 
    StringBuffer buf = new StringBuffer(); 
    int c; 
    while ((c = inputStream.read()) != -1) 
    { 
     buf.append((char) c); 
    } 

    //Response Formation    
    try 
    { 
     Entity = buf.toString(); 
     return Entity; 
    } 
    catch(NullPointerException e) 
    { 
     Entity = null; 
     return Entity; 
    } 

} 

Мне нужно показать это Entity в поле выбора объекта. Например: предположим, я получаю объект ответа = ThisIsGoingToGood

тогда, мне нужно показать ниже, как в выборе объекта в раскрывающемся списке.

  • Это

  • Является

  • Going

  • Для

  • Good

Скажите, пожалуйста, как это сделать.

+0

вы получаете как «ThisIsGoingToGood». Затем преобразуйте это, разделив текст как «Это», «Есть», «Переход», «В», «Хорошо». Что ты имеешь в виду ? – Signare

+0

@ Signare-Это не текстовый файл first.It является ответом в строке Entity, показанной как в коде. Разделив текст Entity String.Я пытаюсь показать, как мне это нужно в поле выбора объекта. Поскольку «Это» должно быть первым выбором поля выбора. «Является ли« вторым выбором поля выбора и т. Д. ». – user2218773

+0

** С какой проблемой вы спрашиваете? Вы спрашиваете, как * split * строку, в которой нет пробелов? Вы спрашиваете, как обновить «ObjectListField» из фонового потока, который запрашивает данные HTTP? – Nate

ответ

0

Это решение предполагает:

  • Camel Case формат ваших строк всегда будет начало с заглавной буквы ,

  • Используется только один символ верхнего регистра в строке, даже если слово слово является акронимом. Например, «HTTP-ответ» будет записан как "HttpResponse".

public static Vector getContentStrings(HttpConnection connection) throws IOException { 
    Vector words = new Vector(); 

    InputStream inputStream = connection.openInputStream(); 
    StringBuffer buf = new StringBuffer(); 
    int c; 
    while ((c = inputStream.read()) != -1) 
    { 
     char character = (char)c; 
     if (CharacterUtilities.isUpperCase(character)) { 
      // upper case -> new word 
      if (buf.length() > 0) { 
       words.addElement(buf.toString()); 
       buf = new StringBuffer(); 
      } 
     } 
     buf.append(character); 
    } 
    // add the last word 
    words.addElement(buf.toString()); 

    return words; 
} 

Тогда вы будете иметь хороший Vector полный выбор для вашего ObjectChoiceField. Затем вы можете сделать insert(), как показано в ответе Signare.

Примечание: всегда не забудьте закрыть свои потоки. Я оставил это вам, чтобы решить, когда вы действительно закончили с этим.

+0

спасибо, его работа для меня. – user2218773

0

С исх от ответа- Нейта попробовать это -

ObjectListField ol = new ObjectListField(ObjectListField.ELLIPSIS); 
ol.setSize(words.size()); //Where words is the vector 
for (int i = 0; i < size; i++) 
    { 
ol.insert(i, words.elementAt(i)); 
} 
add(ol); 
+0

Пожалуйста, расскажите мне, как получить размер и стоимость от «ThisISGoingToGood». – user2218773