2012-12-19 2 views
0

Я пытаюсь написать собственный класс FragmentPagerAdapter для использования с ViewPager и ActionBarSherlock. Я хочу переопределить метод getItemId(), потому что у меня есть разные вкладки, которые могут приходить и уходить в зависимости от состояния приложения. Но метод getItemId() не существует в реализации FragmentPagerAdapter, включенной в android-support-v4.jar (я использую ActionBarSherlock 4.1.0). Я загрузил 4.2.0, но он, похоже, имеет идентичную поддержку android-v4.jar.FragmentPagerAdapter.getItemId(), кажется, отсутствует

Из того, что я сказать, getItemId() был добавлен в библиотеку Android поддержки 10 мая

Есть ли способ исправить это?

- Edit -

Возможно Android документы находятся вне синхронизации с библиотекой поддержки?

Вот ссылка на документ, который говорит, что библиотека поддержки v4 имеет getItemId(): http://developer.android.com/reference/android/support/v4/app/FragmentPagerAdapter.html#getItemId(int)

Но я только что скачал последнюю версию андроида-поддержки-v4.jar из диспетчера Android SDK (Android Support Library Rev 11). Банкомат отличается от АБС, но, похоже, он не включает метод getItemId().

Изменение, которое добавило getItemId(), похоже, перешло в библиотеку v13? См https://android.googlesource.com/platform/frameworks/support/+/1a1c2acbc15f8bc9dba05d09dcb18e340474e1c6%5E!/

Вот некоторый код из моего проекта:

import android.support.v4.app.FragmentPagerAdapter; 
import com.actionbarsherlock.app.ActionBar; 

public class TabsAdapter extends FragmentPagerAdapter implements 
     ActionBar.TabListener, ViewPager.OnPageChangeListener 
{ 
    ... 
    // This fails to compile: 
    // The method getItemId(int) of type TabsAdapter must override or implement a supertype method 
    @Override 
    public long getItemId(int position) { 
     return 0; // TODO 
    } 
} 
+1

Можем ли мы увидеть фрагмент кода того, что вы делаете? В частности, объявление класса и 'getItemId()', как вы пытаетесь его переопределить? Я просто посмотрел в одном из своих «FragmentPagerAdapter», используя последнюю библиотеку поддержки v4, и я ее вижу. – jprofitt

+0

Добавлен фрагмент кода. Спасибо за любую помощь! – jfritz42

+1

Это похоже на тот же код, который будет работать для меня. Что такое размер вашей библиотеки v4? – jprofitt

ответ

0

Решение было перезаписать андроид-поддержки-v4.jar в библиотеке ActionBarSherlock с JAR я скачал из диспетчера Android SDK (Android Поддержка Библиотека Rev 11). Я думаю, что библиотека ABS просто не обновлена ​​с самой последней версией. К счастью, проблем с совместимостью не существует.