2011-12-27 68 views
0

我想使用PageAdapter。我发现public Object instantiateItem(View pager, int position)已被弃用。所以我试图更新,但遇到了一个问题。新定义将欺骗更改为public Object instantiateItem(ViewPager pager, int position),当我这样做并将其推送到我的设备应用程序崩溃。覆盖instantiateItem(...)不会编译

这是我的logcat输出。

12-26 19:24:30.701: ERROR/AndroidRuntime(25431): FATAL EXCEPTION: main java.lang.UnsupportedOperationException: Required method instantiateItem was not overridden at android.support.v4.view.PagerAdapter.instantiateItem(PagerAdapter.java:175) at android.support.v4.view.PagerAdapter.instantiateItem(PagerAdapter.java:110) at android.support.v4.view.ViewPager.addNewItem(ViewPager.java:649) at android.support.v4.view.ViewPager.populate(ViewPager.java:783) at android.support.v4.view.ViewPager.onMeasure(ViewPager.java:1016)

因此,我增加@Override的方法调用,但是当我编译它,使用maven,我得到对应于我的方法如下输出。

Chronos/ChronosApp/src/com/kopysoft/chronos/view/ClockViewer.java:[67,4] error: method does not override or implement a method from a supertype

我不知所措。任何建议将不胜感激!

整个代码可以在这里找到:http://pastebin.com/da5Kqcmg

回答

1

在PagerAdapter.instantiateItem运行时代码(),因为它要你重写抛出异常。所以确保你重写抛出异常的方法。您可能只想将您的代码切换回覆盖弃用的方法,因为这是您的运行时库期望的。

可能你有一个运行时间较长的运行时间?

+0

我这样做似乎已经解决了这个问题。我正在使用最新版本的兼容性库(它定义了对象)。你是这个意思吗? – Ethan 2011-12-27 01:05:05

+0

是的,我对Andriod的东西一无所知。我只知道Java的东西和模式。所以我不确定他们为什么弃用一种方法,但仍然需要你使用它。这可能是他们的错误。 – 2011-12-27 01:10:21

+0

好的,谢谢你的帮忙弗朗西斯! – Ethan 2011-12-27 04:37:09