Программирование bada - вызов списка в пределах списка - PullRequest
0 голосов
/ 07 декабря 2011

В настоящее время у меня есть просмотр списка, содержащий 4 элемента, в одном из элементов просмотра списка, я хотел бы реализовать другой просмотр списка, мне нужно сделать другой менеджер форм? Или как мне это сделать? Кроме того, как я могу вызвать функцию одного класса в другом классе? Или сделать ссылку (указатель) для передачи информации из одного класса в другой?

1 Ответ

0 голосов
/ 07 декабря 2011

Не уверен, что я понимаю вопрос на 100%.

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

То же самое относится и к ссылкам на экземпляры классов:

class Apple() {
  private Basket* basket;
  public Apple() { 
    basket = null;
  }
  public void setBasket(Basket* basket) {
    this->basket = basket;
  }
  public Basket* getBasket() {
    return this->basket;
  }
}

class Basket() {
  private Apple* apple;
  public Basket() {
    apple = null;
  }
  public setApple(Apple* apple) {
    this->apple = apple;
    this->apple->setBasket(this);
  }
}

...
Apple* apple = new Apple();
Basket* basket = new Basket()
basket->setApple(apple);

Надеюсь, это немного поможет.* Хорошо, я добавляю больше кода сюда, чтобы посмотреть, поможет ли это Он не проверен, написан на лету, чтобы показать принципала :

FormA.h

class FormA : 
    public Osp::Ui::Controls::Form, 
    public Osp::Ui::IItemEventListener 
{

    // Other stuff including list
protected:
  void  OnItemStateChanged (const Osp::Ui::Control &source, int index, int itemId, Osp::Ui::ItemStatus status);   
}

FormA.cpp

    // Other stuff including constructor and list control creation/population

void FormA::OnItemStateChanged (const Osp::Ui::Control &source, int index, int itemId, Osp::Ui::ItemStatus status) {

  // Construct and show other form
  FormB* b = new FormB(itemId);
  // Add to frame and set formb as current

}

FormB.h

class FormA : 
    public Osp::Ui::Controls::Form, 
    public Osp::Ui::IItemEventListener 
{
private int itemId;
public:
  FormA(int itemId);  
}

FormB.cpp

FormA::FormA(int itemId) {
 this->itemId = itemId;
}

// Now somewhere in your form initialization read the itemId
// value (this->itemId) and decide what you want to show in the form's list view
...