1

我的应用程序有一个操作栏和片段。我将 tablistener 用于操作栏的选项卡:

package com.infomercados.appinfomercados;

import android.app.ActionBar;
import android.app.Fragment;
import android.app.FragmentTransaction;
import android.app.ActionBar.Tab;
import android.util.Log;

public class TabListener implements ActionBar.TabListener {

    private Fragment fragment;

    public TabListener(Fragment fg)
    {
        this.fragment = fg;
    }

    @Override
    public void onTabReselected(Tab tab, FragmentTransaction ft) {
        Log.i("ActionBar", tab.getText() + " reselected.");
    }

    @Override
    public void onTabSelected(Tab tab, FragmentTransaction ft) {
        Log.i("ActionBar", tab.getText() + " selected.");
        ft.replace(R.id.container, fragment);
    }

    @Override
    public void onTabUnselected(Tab tab, FragmentTransaction ft) {
        Log.i("ActionBar", tab.getText() + " no selected.");
        ft.remove(fragment);
    }
}

我想适应早期版本,我添加了 android-support-v6-appcompat.jar 但产生了这个错误: Class requires API level 11 (current min is 7): android.app.ActionBar.TabListener

你能帮助我吗?

很感谢。

4

3 回答 3

11

您没有使用支持类库。

例如:

import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentPagerAdapter;
import android.support.v4.view.ViewPager;

关于ActionBar:

如果您使用的是 AppCompat 库,则需要导入:

android.support.v7.app.ActionBar

如果您使用的是 ActionBarSherLock 库,那么您需要导入:

import com.actionbarsherlock.app.ActionBar;
import com.actionbarsherlock.app.ActionBar.Tab;
于 2013-09-23T09:48:07.193 回答
2

您没有使用该类的支持库版本。导入android.support.v7.app.ActionBar而不是android.app.ActionBar解决此特定问题。(在那里,也更改您的其他android.app导入,因为例如 API 级别 7 中不存在片段。)

于 2013-09-23T09:45:22.907 回答
0

正确的答案是,使用支持库,例如:

import android.support.v7.app.ActionBar;
import android.support.v7.app.ActionBar.Tab;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
于 2014-08-31T23:26:25.637 回答