2010-01-15 2 views
0

В течение жизни я не могу понять, почему добавление конкатенированной строки в MainScreen приводит к тому, что симулятор BB генерирует исключение. Если я запускаю очень простую программу приветствия со следующим контролем, все хорошо:Что случилось с конкатенацией в приложении Blackberry?

RichTextField rtfHello = new RichTextField("Hello There !!!");   
add(rtfItemDescription); 

Но если добавить сцепленную строку, все приложения изломов:

String MyName = "John Doe"; 
RichTextField rtfHello = new RichTextField("Hello There !!!" + MyName);   
add(rtfItemDescription); 

Так что я делаю неправильно ? Почему симулятор выдавал исключение для второго примера?

+0

, что Исключение бросают? – roryf

+0

Действительно, без подробностей это очень сложно ответить. –

+0

«Hello There» + myName вызывает конкатенацию во время выполнения, что было бы неплохо, за исключением того, что ваш Eclipse генерирует реальный и современный Java-код, тогда как для BB5/6/7 требуется Java ME прошлых веков (literall), который использует StringBuffer. Вы должны сначала убедиться, что ваши свойства сборки проекта установлены в Java Compiler -> Source Level 1.3 или 1.4 (выполните поиск в этом разделе, прежде чем отвечать!). Этого было достаточно, но, видимо, после обновления программного обеспечения до Eclipse в марте 2013 года это еще не решило проблему, для которой я все еще ищу решение. – idarwin

ответ

0

Не уверен, почему это взорвалось (но я не разработчик Blackberry/Java). Вы просто пытались:

String MyName = "John Doe"; 
String HelloString = "Hello There !!!"; 
RichTextField rtfHello = new RichTextField(HelloString.concat(MyName));   
add(rtfItemDescription); 

или просто

String MyName = "John Doe"; 
RichTextField rtfHello = new RichTextField("Hello There!!!".concat(MyName));   
add(rtfItemDescription); 
+0

Не работает попытка concat 'Char'. Я считаю, что это связано с тем, что OS 7.1 и ниже используют Java ME. – Doomsknight

0

Я не думаю, что проблема с конкатенации. может предоставить дополнительную информацию, как то, что вы получаете.

+0

это выглядит так, что когда я выполняю конкатенацию строк в моем проекте Blackberry (используя eclipse), процесс упаковки не может найти определение класса StringBuilder. проект по умолчанию равен jdk 1.4. StringBuilder не был введен до версии 1.5, поэтому попытка запустить код приведет к сообщению об ошибке «no class definition found». Так что это мое предположение, почему я вижу свои ошибки. – sexitrainer

1

выглядит так, когда я выполняю конкатенацию строк в моем проекте blackberry (используя eclipse), процесс упаковки не может найти определение класса StringBuilder. проект по умолчанию равен jdk 1.4. StringBuilder не был введен до версии 1.5, поэтому попытка запустить код приведет к сообщению об ошибке «no class definition found». Так что это мое предположение, почему я вижу свои ошибки. - sexitrainer 20 января в 15:30

Это потому, что StringBuilder не является частью J2ME. Вы не сможете использовать его во время программирования для мобильных устройств.

2

Для конкатенаций строк в Blackberry попробуйте использовать класс StringBuffer. StringBuffer быстрее, чем String, потому что он изменен.

+0

Кажется, сделать трюк :) 'StringBuffer str =" "; str.append (MyString); ' – Doomsknight

1

Попробуйте

String MyName = "John Doe"; 
    RichTextField rtfHello = new RichTextField("Hello There !!!" + MyName);   
    add(rtfHello);