Я пытаюсь внедрить навигацию по вкладкам, но я хочу убедиться, что люди, у которых есть более старые версии Android, могут по-прежнему использовать мое приложение.
Приложение в виду ATM довольно простое, я просто хочу понять, как реализовать макет, а затем добавлю недостающие биты.
Во всяком случае, у меня есть действие контейнера, которое расширяет действие фрагмента (для обеспечения совместимости), и это действие создает TabView с помощью 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) в качестве параметра.
Любые идеи о том, как сделать другую реализацию боковой навигации через библиотеку поддержки, чтобы обеспечить совместимость?