Iniciar un fragmento a través de Intent dentro de un fragmento

Quiero lanzar un nuevo fragmento para ver algunos datos. Actualmente, tengo una actividad principal que tiene un montón de pestañas de barra de acciones, cada una de las cuales es un fragmento. Por lo tanto, dentro de un fragmento de pestaña, tengo un botón, chartsButton. Tengo mi onclicklistener conjunto para él, y aquí está el método onClick:

public OnClickListener chartsListener = new OnClickListener() { @Override public void onClick(View v) { Intent chartFragment = new Intent(); startActivity(chartFragment); } }; 

Ahora, como he dicho, este oyente está dentro de una clase que extiende Fragmento. Por lo tanto, quiero lanzar un nuevo fragmento (chartsFragment) a través de la intención de reemplazar toda la pantalla. Cuando el usuario hace clic de nuevo, los volverá a las pestañas ya la actividad principal. Aquí está mi fragmento de gráfico:

 public class chartsFragment extends Fragment { public View onCreateView() { //LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState LayoutInflater inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); return (inflater.inflate(R.layout.chartfragment, null)); } } 

El error actual con el que estoy tratando: "android.content.ActivityNotFoundException: No hay actividad para manejar Intent {}". Eso está bien, entiendo que podría usar getActivity (). StartActivity (chartsFragment), pero que da como resultado el mismo error. Supongo que lo que estoy buscando aquí, es cómo iniciar una intención dentro de un fragmento que resulta en la apertura de un nuevo fragmento?

No puedes abrir nuevos fragmentos. Los fragmentos deben estar siempre alojados en una actividad. Si el fragmento está en la misma actividad (por ejemplo, pestañas), a continuación, la navegación de la tecla de regreso va a ser complicado estoy asumiendo que desea abrir una nueva pantalla con ese fragmento.

Así que simplemente crearía una nueva actividad y pondría el nuevo fragmento allí. Esa actividad reaccionaría entonces a la intención explícitamente a través de la clase de actividad o implícitamente a través del intent filter .

La respuesta a su problema es fácil: reemplace el Fragment actual con el nuevo Fragment y presione la transacción en el backstack. Esto conserva el comportamiento del botón …

Crear una nueva Activity realmente derrota todo el propósito de usar fragmentos de todos modos … muy contra productivo.

 @Override public void onClick(View v) { // Create new fragment and transaction Fragment newFragment = new chartsFragment(); // consider using Java coding conventions (upper first char class names!!!) FragmentTransaction transaction = getFragmentManager().beginTransaction(); // Replace whatever is in the fragment_container view with this fragment, // and add the transaction to the back stack transaction.replace(R.id.fragment_container, newFragment); transaction.addToBackStack(null); // Commit the transaction transaction.commit(); } 

http://developer.android.com/guide/components/fragments.html#Transactions

Pruebe esto puede ayudarle:

 public void ButtonClick(View view) { Fragment mFragment = new YourNextFragment(); getSupportFragmentManager().beginTransaction().replace(R.id.content_frame, mFragment).commit(); } 

Pruebe esto puede ayudarle:

 private void changeFragment(Fragment targetFragment){ getSupportFragmentManager() .beginTransaction() .replace(R.id.main_fragment, targetFragment, "fragment") .setTransitionStyle(FragmentTransaction.TRANSIT_FRAGMENT_FADE) .commit(); } 
  • Cómo crear mi propio marcador personalizado en un teléfono Android
  • ¿Cómo sé qué datos se proporcionan en un paquete?
  • OverridePendingTransition no funciona
  • Android onNewIntent del lanzador de aplicaciones me da la última intención
  • Google Maps en modo de conducción url esquema no funciona en Android
  • Android getIntent () devuelve la primera intención
  • Utilizar intent.getStringExtra dentro de una actividad
  • Android: cómo obtener información de la ubicación de los extras del paquete de intenciones cuando se utiliza LocationManager.requestLocationUpdates ()
  • Manejo enNewIntent en Fragmento
  • Cómo bloquear el micrófono para utilizar otra aplicación?
  • Manera alternativa de implementar un tirador deslizante que ha quedado obsoleto desde la api 17
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.