No se puede convertir de android.support.v4.app.Fragment a android.app.Fragment

Estoy haciendo mi primera aplicación de Android, y quería entrar directamente en la API de ICS. Hasta ahora he creado una aplicación usando un ActionBar, con pestañas deslizables usando Viewpager y Fragments.

Sin embargo, experimentar algunos errores que me siguen volviendo a.

Dependiendo de cómo lo implemento, siempre vuelvo a un error de "Tipo no coincidente": "no se puede convertir de android.support.v4.app.Fragment a android.app.Fragment". He intentado quitar todas las referencias de la importación a cualquiera, y este error aparece cuando utilizo solamente android.support.v4.app.Fragment en TabListener, FragmentActivity y mis dos fragmentos.

El error se produce en mi 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 } } 

Al eliminar "android.app.FragmentTransaction ft", reemplazándolo con sólo "FragmentTransaction ft", el problema va awawy. Entonces surgen nuevos problemas:

El método onTabReselected (ActionBar.Tab, FragmentTransaction) del tipo TabListener debe reemplazar o implementar un método supertype TabListener.java

El método onTabSelected (ActionBar.Tab, FragmentTransaction) del tipo TabListener debe reemplazar o implementar un método supertype TabListener.java

El método onTabUnselected (ActionBar.Tab, FragmentTransaction) del tipo TabListener debe reemplazar o implementar un método supertype TabListener.java

El tipo TabListener debe implementar el método abstracto heredado ActionBar.TabListener.onTabReselected (ActionBar.Tab, FragmentTransaction) TabListener.java

El tipo TabListener debe implementar el método abstracto heredado ActionBar.TabListener.onTabSelected (ActionBar.Tab, FragmentTransaction) TabListener.java

El tipo TabListener debe implementar el método abstracto heredado ActionBar.TabListener.onTabUnselected (ActionBar.Tab, FragmentTransaction) TabListener.java

¿Que está pasando aqui?

Como usted puede entender, soy nuevo en el desarrollo de Java y Android. Siento que estoy muy cerca, pero no soy capaz de resolver este problema. No entiendo por qué quiere "convertir de android.support.v4.app.Fragment a android.app.Fragment cuando ni siquiera estoy importando android.app.Fragment en cualquier lugar.

Supongo que está relacionado con el uso del paquete de compatibilidad. (¿Debo usar este paquete en absoluto al crear una aplicación para la versión más reciente del SDK?)

Intente utilizar getSupportFragmentManager() lugar de getFragmentManager()

¿Que está pasando aqui?

Mientras que el paquete de soporte de Android le da una implementación de Fragment compatible con versiones anteriores, ActionBar no forma parte del paquete de soporte de Android. Por lo tanto, ActionBar.TabListener espera objetos de Fragment API 11 de nivel nativo. Considere el uso de ActionBarSherlock para tener una barra de acción y fragmentos de soporte de Android.

Pero luego me quedo con otro problema en mi FragmentPagerAdapter

El FragmentPagerAdapter en el paquete de soporte de Android es un poco complicado: quiere que los objetos de Fragment de nivel 11 de API no sean objetos de Fragment soporte de Android. Sin embargo, puede clonar la fuente a FragmentPagerAdapter (la fuente está en su SDK) y crear su propia implementación que utiliza el sabor de support.v4 de Fragment and kin.

Sé que ha sido demasiado tarde para responder a esta pregunta, pero podría ayudar a alguien con el mismo problema.

Vaya a su carpeta java y haga clic en la actividad de su fragmento.

En las importaciones, reemplace la import android.app.Fragment; con

import android.support.v4.app.Fragment;

Mantenga intacto el código en MainActivity y esto debería ayudar a resolver el problema.

Nota: Si no funciona a la vez, no se preocupe. Construir> Reconstruir el proyecto .

Esta solución funciona para mí

reemplazar

 public class MyFragment extends Fragment{ } 

con

 public class MyFragment extends android.support.v4.app.Fragment{ } 

Y también reemplazar la importación

 import android.app.Fragment; 

con

 import android.support.v4.app.Fragment; 

Puede quitar el paquete de soporte y resolver el problema. Sólo es necesario cuando se necesitan funciones de Android 3.0 y superiores en aplicaciones para versiones anteriores.
En su caso, obtendrá tanto los fragmentos predeterminados de ICS como los fragmentos del paquete de soporte y si obtiene objetos de los diferentes paquetes no funcionarán juntos.

Version corta; Utiliza un nivel de api encima de Honecomb o el paquete de soporte, no ambos.

He tenido el mismo problema ayer.

Hay una página realmente agradable de Samsung que cubre ActionBarSherlock. Compruebe si utiliza una de las importaciones / clases / métodos a la izquierda y reemplácelas por las importaciones / clases / métodos a la derecha.

Yo tuve el mismo problema. Resuelto por el cambio de la interfaz de implements ActionBar.TabListener a implements TabListener y luego implementar los métodos dentro de esta interfaz. También mencionó el error que usted ha mencionado.

  • ¿Cómo entrar en el código fuente de Android OS al depurar?
  • ¿Puedo acceder a los datos almacenados en AsyncStorage de React Native desde la capa java?
  • Cómo obtener un contexto en un adaptador de vista de reciclador
  • <S3dReadConfigFile: 75>: No se puede abrir el archivo para error de lectura
  • Android Studio - SDK está desactualizado o falta plantillas
  • Obtener foto de perfil de facebook y establecer en imageview
  • ¿Cómo administrar el montón nativo?
  • Recuperar una lista de países del sistema operativo Android
  • La vista previa de la cámara se bloquea después del bloqueo de la pantalla
  • No se puede añadir dependecy en gradle (Android Studio)
  • Ordenar por atributo de entidad extranjera en ORMLite
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.