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.
- ¿Debo usar Java o XML para diseños de Android?
- ¿Cómo repetir textview?
- XMLResourceParser, no estoy seguro de cómo leer el XML que tengo
- ¿Cómo conectar automáticamente un WiFi con SSID especificado?
- Reintentar una conexión http
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?)
- Cámara Android: ¿Hilos? Que debe hacer lo que
- SetOnPageChangeListener no llama aPageSelected
- ViewPager.setOffscreenPageLimit (0) no tiene ningún efecto en absoluto. ¿Cómo puedo cargar una página a la vez en un ViewPager?
- ¿Cómo bloquear mediante programación la pantalla en Android?
- ¿Cómo agregar timePicker usando fragmento?
- ¿Es posible reutilizar RemoteViews en un appWidget en lugar de crear nuevos cada vez? Y cómo puedo almacenarlos?
- RegisterOnSharedPreferenceChangeListener () se aproxima a la comparación
- ¿Plataforma para desarrollar todo el google de las cosas?
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 navegar hasta el mismo estado principal
- ¿Cómo recibir un evento en el cheque de chequeo de cheques de android?