Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Java ME (J2ME) > В TextField как добавить "0", если String == null


Автор: John2 30.9.2009, 14:58

Добрый День! 
Подскажите пожалуйста, как можно в TextField занести "0", если значение String == null?

Cуть такая:
В startApp() есть поле ввода, в которое вносятся данные в цифрах
при переходе данные должны появиться в новой Form 
   а) где внесено, к примеру "10" - должно появиться "10",
   б) где "пусто" - должен появиться "0"

Заранее спасибо!

Автор: dive 30.9.2009, 15:02
Код

String str;
...
TextField textfield = new TextField("TextField Label", str == null ? "0" : str, 50, 0);

Автор: John2 2.10.2009, 14:27
Как не экспериментиловал, не удалось добиться результата, необходимого мне. 

Этим : 
Код

TextField textfield = new TextField("TextField Label", str == null ? "0" : str, 50, 0);
 или другим способом удаётся воспользоваться, если НЕ ПОЛЬЗОВАТЬСЯ методами .setString( str )
или getString() , что в принципе бессмысленно

Причина видимо в том, что при вызове этих методов переменная str теряет своё значение null. Или в чем-то ещё, не пойму точно.
Вот сам пример: 
Код

public void startApp()
{
...
        tf = new TextField( " поле ввода ", str, 4, TextField.NUMERIC );
        tf.setString( str );
...
}

public void commandAction(Command c, Displayable d)
{
...
   
 if ( c == goto2 )
   {
    ...
       str = tf.getString();
       tf = new TextField( " поле ввода ", str == null ? "0" : str, 4, TextField.NUMERIC );
    ...
   }

}

Так не работает - также "пусто" и остается.

А работает только так:
Код

if ( c == goto2 )
   {
    ...
       // Но данные введенные ранее не  извлекаются без str = tf.getString();
       tf = new TextField( " поле ввода ", str == null ? "0" : str, 4, TextField.NUMERIC );
    ...
   }


Может есть какие-то другие способы?

Автор: Окунь 2.10.2009, 14:36
не проверял, но скорее всего после

Код

String str = null;
tf.setString(str);
str = tf.getString();


"".equals(str) == true
т.е. tf.getString(), если поле ввода пустое, возвращает пустую (а не нулевую) строку

Автор: John2 2.10.2009, 16:04
Окунь
Спасибо большое! Заработало таким способом:
Код

str = tf.getString();
                if ( "".equals( str ) == true )
                {
                   str = "0";
                }

tf = new TextField( " поле ввода ", str, 4, TextField.ANY );

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)