2012-08-06 1 views
2

Я не могу отобразить подробную информацию о форме, относящуюся к названию пользователя, нажав на форму 1 Экран, когда я нажимаю на любой элемент списка на экране формы1, я могу отображать только детали первого элемента (в моем коде int index = myNewsList.getSelectedIndex() всегда возвращает 0 в качестве значения)Как определить элемент списка на экране формы экрана?

Вот мой Подробный код для Rss App:

     //method called by the parsing thread 
         public void addNews(News newsItem) { 
         newsVector.addElement(newsItem);//initialsed list with vector 
         myNewsList = new List(newsVector);          
         myNewsList.setListCellRenderer(new NewsListCellRenderer());   
         form1.addComponent(myNewsList);     
         form1.show(); 
         myNewsList.addActionListener(new ActionListener() { 
         public void actionPerformed(ActionEvent ae) { 
         int selectedIndex = myNewsList.getSelectedIndex(); 
         if(selectedIndex != -1){ 
          newsItem1 = (News)news.elementAt(selectedIndex); 
          Label l=new Label(); 
          l.setText(newsItem1.getPubDate()); 
          Form detailedForm=new Form(); 
          detailedForm.addCommand(m_backCommand); 
          detailedForm.addCommandListener(this); 
          detailedForm.addComponent(l); 
          detailedForm.show();     
         }     

         } 
        });     
        } 

    Can you help? 
+0

Hii Калайте, я изменил мой код, он прекрасно работает .... вот мой код ... public void actionPerformed (ActionEvent ae) {List source = (List) ae.getSource(); try { Избранные новостиNewsItem = (Новости) source.getSelectedItem(); System.out.println ("selectedIndex" + selectedNewsItem.getDescription()); if (selectedNewsItem! = Null) {displayCompleteNewsScreen (selectedNewsItem); – String

ответ

2

Добавить действий слушателя в список. Он вызывается только в том случае, если вы щелкните любой элемент списка. В этом прослушивателе действий выберите выбранный элемент и внесите его в объект класса «Новости», потому что вы добавили объекты класса «Новости» в список. Из этого объекта получите уникальное свойство, такое как идентификатор новостей. Передайте его на другой экран с текущим объектом формы (form1).

myNewsList = new List(news); 
myNewsList.setListCellRenderer(new NewsListRenderer()); 

myNewsList.addActionListener(new ActionListener() { 

    public void actionPerformed(ActionEvent ae) { 
      News allNewsClassObjs = (News) myNewsList.getSelectedItem(); 
      int newsid = allNewsClassObjs.getNewsId(); 
      displayCompleteNewsScreen(form1,newsid); 
    } 
}); 
form1.addComponent(myNewsList); 
form1.addCommand(cmdDetails); 
form1.setScrollable(true); 
form1.setTransitionInAnimator(Transition3D.createRotation(250, true)); 
form1.show(); 

С идентификатором новостей вы можете отображать связанные данные на другом экране. Добавьте обратно команду. В обратной команде просто покажите объект form1.

public void displayCompleteNewsScreen(Form form1,int newsid){ 

// Get the related data and add it to another form object(form2). 

form2.addCommand("Back"); 
form2.addCommandListener(new ActionListener() { 

     public void actionPerformed(ActionEvent ae) { 
       form1.show(); 
     } 
    }); 
form2.show(); 
} 

Вместо использования

int selectedIndex = myNewsList.getSelectedIndex(); 
if(selectedIndex != -1){ 
newsItem1 = (News)news.elementAt(selectedIndex); 
} 

Используйте приведенный ниже код

newsItem1 = (News)myNewsList.getSelectedItem(); 
+0

в объекте form2, я хочу добавить дату публикации и некоторое описание, и после этого я хочу показать свою подробную форму, например, например (PubDate: Tue, o7 aug and Description: некоторый текст здесь из объекта News)? – String

+0

У меня уже есть значения даты и описания публикации в объекте allNewsClassObjs, но как показать его на form2? Я использовал этот Label pubdate = new Label(); pubdate.setText (detailNews.getPubDate()); form2.addComponent (pubdate); form2.addCommand (m_backCommand) ;, что такое правильный метод? – String

+0

Правильно. Ты можешь это сделать. –

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

  • Нет связанных вопросов^_^