【问题标题】:Setting a Tablistener method for tabs in action bar为操作栏中的选项卡设置 Tablistener 方法
【发布时间】:2013-08-20 09:44:54
【问题描述】:

我正在尝试修改tutorial,关于滑动和选项卡,因此我可以为每个选项卡手动设置 Tablistener 方法,并将其插入操作栏中。这样做的原因是,我希望能够单独编辑每个 Fragment 文件(现在它们是动态创建的)。

教程中用于为特定选项卡动态设置 Tablistener 的代码:

for (int i = 0; i < mCollectionPagerAdapter.getCount(); i++) {
    actionBar.addTab(actionBar.newTab()
         .setText(mCollectionPagerAdapter.getPageTitle(i))
         .setTabListener(this)); //this is of type FragmentActivity
}

我想通过为每个选项卡手动指定 Tablistener 来更改此设置。示例:

Tab tab = actionBar.newTab();
tab.setText("tabName");
tab.setTabListener(new TabListener<Tab1Fragment>(this, "tabName", Tab1Fragment.class));
// the first parameter should be an Activity object, but mine is a FragmentActivity
actionBar.addTab(tab);

当我尝试上面的代码时,我得到了两个错误:

  • ActionBar.TabListener 类型不是通用的;它不能用参数
  • 参数化
  • 无法实例化类型 ActionBar.Tablistener

可以做些什么来解决这个问题?

【问题讨论】:

    标签: android android-fragments android-tabs


    【解决方案1】:

    尝试将这两个导入放在 java 文件的顶部(在包定义之后):

    导入android.app.ActionBar;

    导入android.app.ActionBar.Tab;

    它对我有用;)

    【讨论】:

      【解决方案2】:

      正如你在官方文档中看到的,ActionBar.TabListener 是一个接口,所以你必须实现它。

      【讨论】:

      • 接口已经实现(你可以在教程中看到)。我只想更改上面粘贴的代码。
      • 是的,但接口仅由this实现。我的理解是您想为每个选项卡(或片段)创建自定义实现。那么你应该有不止一个实现
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多