类需要API级别11(当前最小值为7):android.app.ActionBar.TabListener

时间:2013-09-23 09:42:45

标签: android compatibility

我的应用有一个操作栏和片段。我使用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,但产生了这个错误: 类需要API级别11(当前最小值为7):android.app.ActionBar.TabListener

你能帮助我吗?

非常感谢。

3 个答案:

答案 0 :(得分: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;

答案 1 :(得分:2)

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

答案 2 :(得分: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;