2017-06-28 3 views
-1

Cela semble être un problème commun avec beaucoup de réponses acceptées, mais aucun d'entre eux ne semble fonctionner pour moi.Barre d'outils dans l'application Crashes Fragment au lancement

La plupart des réponses suggèrent d'utiliser ce morceau de code pour ajouter une barre d'outils dans un fragment:

mToolbar = (Toolbar)rootView.findViewById(R.id.toolbar); 
    if (mToolbar != null) { 
     ((AppCompatActivity) getActivity()).setSupportActionBar(mToolbar); 
    } 

Hélas, cette plante encore mon application, même si j'utilise AppCompatActivity. Je pense que l'erreur peut résider dans le fait que ma classe Fragment étend Fragment et non AppCompatActivity mais je n'en sais pas assez sur android pour être sûr de cela. Il se bloque sur la ligne setSupportActionBar.

Mon code Fragment:

package erikligai.ribbitapplication; 

import android.os.Bundle; 
import android.support.annotation.Nullable; 
import android.support.v4.app.Fragment; 
import android.support.v4.app.FragmentActivity; 
import android.support.v7.app.AppCompatActivity; 
import android.support.v7.widget.Toolbar; 
import android.view.LayoutInflater; 
import android.view.View; 
import android.view.ViewGroup; 
import android.widget.TextView; 

/** 
* Created by erik on 2017-06-07. 
*/ 

public class MessageFragment extends Fragment { 

    Toolbar mToolbar; 

    @Nullable 
    @Override 
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) { 
//  return inflater.inflate(R.layout.message_fragment_layout, container, false); 
     View rootView = inflater.inflate(R.layout.message_fragment_layout, container, false); 

     mToolbar = (Toolbar)rootView.findViewById(R.id.toolbar); 
     if (mToolbar != null) { 
      ((AppCompatActivity) getActivity()).setSupportActionBar(mToolbar); 
     } 

     return rootView; 
    } 

apprécierait des suggestions.

+0

Je suppose que vous avez NullPointerException. Pourquoi essayez-vous de placer la barre d'outils à partir de la vue fragmentée? – fbwnd

+0

postez votre logcat. – SripadRaj

+0

De plus, déléguez le gonflement de la barre d'outils à l'activité et non au fragment –

Répondre

1

Vous devez lancer votre activité de getActivity() à AppCompatActivity

((AppCompatActivity) getActivity()).getSupportActionBar().setTitle(); 

Toolbar obtenir de Activity, pas de Fragment

mToolbar = (Toolbar)rootView.findViewById(R.id.toolbar);