【问题标题】:How to navigate to another tab from one tab(pane manager model) in blackberry?如何从黑莓中的一个选项卡(窗格管理器模型)导航到另一个选项卡?
【发布时间】:2012-05-06 19:23:04
【问题描述】:

我在我的黑莓应用程序中创建了 3 个选项卡。第一个选项卡允许用户选择特定日期范围并搜索条目。搜索按钮位于第一个选项卡上。结果从 sqlite 数据库中获取并显示在网格上第三个选项卡的视图。 这是我用来创建标签的主要代码:

  // setup the tab model with 3 tabs
  PaneManagerModel model = new PaneManagerModel();
  model.enableLooping( true );

  // setup the first tab
  VerticalFieldManager vfm = new VerticalFieldManager( 
      Field.USE_ALL_HEIGHT | Field.USE_ALL_WIDTH |
      Manager.NO_VERTICAL_SCROLL | Manager.NO_HORIZONTAL_SCROLL );
  LabelField lbl = new LabelField( "Content for tab 1", Field.FOCUSABLE );
  vfm.add( lbl );

  MyLabelField myLbl = new MyLabelField( "Tab 1" );
  NullField nullFld = new NullField( Field.FOCUSABLE );
  HorizontalFieldManager hfm = new HorizontalFieldManager();
  hfm.add( nullFld );
  hfm.add( myLbl );

  Pane pane = new Pane( hfm, vfm );
  model.addPane( pane );


  // setup the second tab
  vfm = new VerticalFieldManager( 
      Field.USE_ALL_HEIGHT | Field.USE_ALL_WIDTH |
      Manager.NO_VERTICAL_SCROLL | Manager.NO_HORIZONTAL_SCROLL );
  lbl = new LabelField( "Content for tab 2", Field.FOCUSABLE );
  vfm.add( lbl );

  myLbl = new MyLabelField( "Tab 2" );
  nullFld = new NullField( Field.FOCUSABLE );
  hfm = new HorizontalFieldManager();
  hfm.add( nullFld );
  hfm.add( myLbl );

  pane = new Pane( hfm, vfm );
  model.addPane( pane );

  //Setup the third tab
  vfm = new VerticalFieldManager( 
      Field.USE_ALL_HEIGHT | Field.USE_ALL_WIDTH |
      Manager.NO_VERTICAL_SCROLL | Manager.NO_HORIZONTAL_SCROLL );
  lbl = new LabelField( "Content for tab 3", Field.FOCUSABLE );
  vfm.add( lbl );

  myLbl = new MyLabelField( "Tab 3" );
  nullFld = new NullField( Field.FOCUSABLE );
  hfm = new HorizontalFieldManager();
  hfm.add( nullFld );
  hfm.add( myLbl );

  pane = new Pane( hfm, vfm );
  model.addPane( pane );

目前结果正确显示在第三个选项卡中。但它们不在第一个选项卡的按钮单击上。

我已将我的 SELECT 语句包含在第三个选项卡内容中。相反,我只想在单击第一个选项卡中的搜索后才显示第三个选项卡结果。直到那时我希望我的第三个选项卡被禁用或不活动。

任何对此有任何想法的人请分享。谢谢。

【问题讨论】:

    标签: sqlite blackberry user-interface tabs navigation


    【解决方案1】:

    你可以打电话给PaneManagerView.jumpTo(int,int)

    【讨论】:

    • 我已经包含了这个 PaneManagerView.jumpTo(3,DIRECTION_BACKWARDS);在我的第一个选项卡的 try 语句中。这个 try 语句用于从表中获取结果。但是在编译时我收到错误:无法从静态上下文 PaneManagerView.jumpTo(3) 引用非静态方法 jumpTo(int,int) ,DIRECTION_BACKWARDS);第二个错误:找不到符号 ^ PaneManagerView.jumpTo(3,DIRECTION_BACKWARDS); ^
    • 抱歉,我的代码不是按原样粘贴的。 jumpTo 不是静态的,因此您需要在您的 PaneManager 实例上调用它:model.getView().jumpTo(3, DIRECTION_FORWARDS)
    • 是的,这行得通!非常感谢。我将索引 2 用于标签 3,它工作得很好。再次感谢。知道如何禁用标签 3 直到单击此按钮事件。跨度>
    • 没有直接的 API 可以做到这一点。作为替代方案,您可以在选项卡 3 上有一个没有内容的虚拟窗格,然后当您要切换到它时,调用model.replacePane 将虚拟窗格替换为真实窗格。或者您可以只创建不带标签 #3 的 PaneManager,然后在切换之前添加它。
    • 实际上,我在选项卡 3 中包含了网格显示语句,但实际获取数据是在选项卡 1 中进行的,因为选项卡 3 始终显示先前获取的数据,而不是我想从 tab1 获得的当前数据。所以我想完全禁用 tab3。否则我怎么能在这个 tab1 中包含 tab3 的那些语句。请参阅 tab 3 代码的重新编辑。
    猜你喜欢
    • 2013-12-19
    • 2020-12-13
    • 2017-01-15
    • 2013-02-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    相关资源
    最近更新 更多