Я пытаюсь реализовать Tab Navigation, но я хочу, чтобы люди, у которых есть старые версии Android, все еще могут использовать мое приложение.
Приложение в виду ATM довольно просто, я просто хочу понять, как реализовать макет, а затем я добавлю недостающие бит.
Во всяком случае, у меня есть активность контейнера, которая расширяет Fragment Activity (для обеспечения совместимости), и эта операция создает TabView с помощью ActionBar (я полагаю, что моя проблема здесь). Приложение попытается создать три вкладки и добавить их в ActionBar, и я хочу, чтобы пользователь мог прокручивать назад и вперед, используя боковую навигацию.
Вот TabListener, который я пытаюсь реализовать:
public static class TabListener<T extends Fragment> implements ActionBar.TabListener {
private Fragment mFragment;
private final Activity mActivity;
private final String mTag;
private final Class<T> mClass;
public TabListener(Activity activity, String tag, Class<T> clz) {
mActivity = activity;
mTag = tag;
mClass = clz;
}
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if (mFragment == null) {
mFragment = Fragment.instantiate(mActivity, mClass.getName());
ft.add(android.R.id.content, mFragment, mTag);
} else {
ft.attach(mFragment);
}
}
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
if (mFragment != null) {
ft.detach(mFragment);
}
}
public void onTabReselected(Tab tab, FragmentTransaction ft) {
}
}
Вот мой импорт, потому что я хотел убедиться, что я использую библиотеку поддержки:
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.Activity;
import android.os.Bundle;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentActivity;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.view.Menu;
Однако Eclipse дает мне проблемы с методами TabListener. Он говорит мне следующее: "Тип LayoutContainer.TabListener должен реализовать унаследованный абстрактный метод ActionBar.TabListener.onTabSelected(ActionBar.Tab, FragmentTransaction)"
Когда я выбираю Добавить нереализованные методы, Eclipse в основном добавляет методы OnTabSelected OnTabReselected и OnTabUnselected, но на этот раз передача версии без поддержки фрагмента (android..app.Fragment) в качестве параметра.
Любые идеи о том, как сделать другую реализацию боковой навигации через библиотеку поддержки, чтобы обеспечить совместимость?