Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Помогите с List 
:(
    Опции темы
ernado
Дата 2.2.2010, 15:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 2.2.2010

Репутация: нет
Всего: нет



Код

 private void create_free_orders_list()
    {
     reg_menu.deleteAll();
        StringBuffer sb = new StringBuffer();
     if( free_orders_count == -1 )
     {
         sb.append("  ").append("Отмечайтесь, заказов много.");
         reg_menu.append(sb.toString(), null);    
         reg_menu.setFitPolicy(ChoiceGroup.TEXT_WRAP_ON);
         sb.delete(0, sb.length());
     }
     else
     if( free_orders_count == 0 )
     {
         sb.append("  ").append("нет заказов");
         reg_menu.append(sb.toString(), null);    
         reg_menu.setFitPolicy(ChoiceGroup.TEXT_WRAP_ON); 
         sb.delete(0, sb.length());
     }
     else
     {
         for (int i=0; i<free_orders_count; i++)
         {
             orders_id_ch[i] = orders_id[i];
             sb.append("  ").append(orders_text[i]);
             reg_menu.append(sb.toString(), null);    // создаем список свободных заказов.
             
             reg_menu.setFitPolicy(ChoiceGroup.TEXT_WRAP_ON); //включает перенос строки
             sb.delete(0, sb.length());
         }
         for( int i=0; i<reg_menu.size(); i++ )
             reg_menu.setFont( i, fFont );
             reg_menu.addCommand(cmdOk);
     }
     free_orders_form = true;
     reg_menu.addCommand(cmdBack);
     reg_menu.setCommandListener(this);
        display.setCurrent(reg_menu);
        
    }

Есть список который заполняетса заказами и периодически обновляетса при поступлении новых заказов, проблема состоит в том что когда происходит обновление списка позицыя курсора автоматом прыгает в верх списка, как можно сделать так чтоб курсор непрыгал при обновлении списка. Помогите кодом если можно)

Это сообщение отредактировал(а) ernado - 2.2.2010, 15:51
PM MAIL   Вверх
ivanovpv
Дата 3.2.2010, 10:30 (ссылка) |    (голосов:1) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 10
Всего: 28



Перед обновлением списка вызываем getSelectedIndex() и сохраняем в переменную индекс текущего выбора в списке, после обновления списка (добавления новых элементов списка) - вызываем setSelectedIndex(savedPosition, true)


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
ernado
Дата 3.2.2010, 14:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 2
Регистрация: 2.2.2010

Репутация: нет
Всего: нет



Спасибо за ответ) зделал как вы сказали и получил IndexOutOfBoundException. вот где расставил getSelectedIndex() и setSelectedIndex()

int selectedIndex = reg_menu.getSelectedIndex();  поставил перед reg_menu.deleteAll();  (самое начало метода)

a reg_menu.setSelectedIndex(selectedIndex, true); поставил после display.setCurrent(reg_menu);  (в конце метода)

правильно ли я понял подсказку?
уже давно мучаюсь с етой проблемой подскажите как решить. Зараннее благодарен.

Это сообщение отредактировал(а) ernado - 3.2.2010, 15:03
PM MAIL   Вверх
ivanovpv
Дата 3.2.2010, 15:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Варвар
**


Профиль
Группа: Участник
Сообщений: 639
Регистрация: 26.1.2005
Где: Москва

Репутация: 10
Всего: 28



Если он выдает IndexOutOfBoundException - это означает что при обновлении списка - список почему то стал короче. Надо перед setSelectedIndex() поставить проверку, если getSelectedIndex() меньше чем количество элементов надо выбирать либо первый либо последний элемент.

А вообще зачем надо весь список убивать? Не проще ли добавлять список новые значения предварительно проверяя - есть они там или нет?


--------------------
Aut viam inveniam aut faciam
PM MAIL Skype   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.1075 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.