2011-12-27 97 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