Я делаю свое первое приложение для Android, и мне хотелось прямо в API ICS.До сих пор я создал приложение с использованием ActionBar, с помощью перелистывающихся вкладок, используя Viewpager и Fragments.
Однако у меня возникают некоторые ошибки, к которым я продолжаю возвращаться.
В зависимости от того, как я его реализую,он всегда продолжает возвращаться к ошибке «Несоответствие типов»: «не удается преобразовать из android.support.v4.app.Fragment в android.app.Fragment».Я попытался удалить все ссылки на импорт, и эта ошибка появляется, когда я использую только android.support.v4.app.Fragment в TabListener, FragmentActivity и двух моих фрагментах.
Ошибка возникает в моем TabListener:
import android.app.ActionBar;
import android.app.ActionBar.Tab;
import android.app.Activity;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentTransaction;
import android.support.v4.view.ViewPager;
import android.util.Log;
public class TabListener implements ActionBar.TabListener {
private android.app.Fragment fragment;
private Activity activity;
private ViewPager pager;
private FragmentTransaction ft;
public TabListener(Activity activity, Fragment fragment, ViewPager pager) {
this.activity = activity;
this.fragment = fragment;
this.pager = pager;
}
@Override
public void onTabSelected(Tab tab, android.app.FragmentTransaction ft){
if (fragment == null) {
ft.add(fragment, null);
} else {
ft.attach(fragment);
}
}
@Override
public void onTabReselected(Tab tab, android.app.FragmentTransaction ft){
// TODO Auto-generated method stub
}
@Override
public void onTabUnselected(Tab tab, android.app.FragmentTransaction ft){
// TODO Auto-generated method stub
}
}
Если удалить «android.app.FragmentTransaction ft», заменив его просто «FragmentTransaction ft», проблема исчезнет.Затем возникают новые проблемы:
Метод onTabReselected (ActionBar.Tab, FragmentTransaction) типа TabListener должен переопределить или реализовать метод супертипа TabListener.java
Метод onTabSelected (ActionBar.Tab, FragmentTransaction) типа TabListener должен переопределить или реализовать метод супертипа TabListener.java
Метод onTabUnselected (ActionBar.Tab, FragmentTransaction) типа TabListener должен переопределить или реализовать метод супертипа TabListener.java
Тип TabListener должен реализовывать унаследованный абстрактный метод ActionBar.TabListener.onTabReselected (ActionBar.Tab, FragmentTransaction) TabListener.java
Тип TabListener должен реализовывать унаследованный абстрактный метод ActionBar.TabListener.onTabSelected (ActionBar.Tab,FragmentTransaction) TabListener.java
Тип TabListener должен реализовывать унаследованный абстрактный метод ActionBar.TabListener.onTabUnselected (ActionBar.Tab, FragmentTransaction) TabListener.java
Что здесь происходит?
Как вы понимаете, я новичок в разработке на Java и Android.Я чувствую, что я довольно близко, но я не могу решить эту проблему.Я не понимаю, почему он хочет "конвертировать из android.support.v4.app.Fragment в android.app.Fragment, когда я нигде не импортирую android.app.Fragment.
Я думаю, этосвязанных с использованием пакета совместимости. (Нужно ли вообще использовать этот пакет при создании приложения для самой последней версии SDK?)