J'ai une activité avec un tiroir de navigation qui revient entre des fragments. Rien de spécial.
Cependant, ce que je veux, c'est la barre d'action à apparaître en haut de l'activité. Le problème est que je continue à obtenir un J'ai essayé des réponses des pages suivantes: p> GetActionBar () Retourne NULL (AppCompat-V7 21) P> Aucun de ceux-ci n'a travaillé donc je pensais que je pensais «D Soumettez ma propre question avec mon propre code. P> nullpointerexception code> pour la barre d'action code>. P>
MainAlacit.java H2>
Activity_Main.xml H2>
11-08 19:17:38.618: E/AndroidRuntime(6347): FATAL EXCEPTION: main
11-08 19:17:38.618: E/AndroidRuntime(6347): Process: com.jampez.smalltalk, PID: 6347
11-08 19:17:38.618: E/AndroidRuntime(6347): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.jampez.smalltalk/com.jampez.smalltalk.MainActivity}: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setTitle(java.lang.CharSequence)' on a null object reference
11-08 19:17:38.618: E/AndroidRuntime(6347): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2658)
11-08 19:17:38.618: E/AndroidRuntime(6347): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2723)
11-08 19:17:38.618: E/AndroidRuntime(6347): at android.app.ActivityThread.access$900(ActivityThread.java:172)
11-08 19:17:38.618: E/AndroidRuntime(6347): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1422)
11-08 19:17:38.618: E/AndroidRuntime(6347): at android.os.Handler.dispatchMessage(Handler.java:102)
11-08 19:17:38.618: E/AndroidRuntime(6347): at android.os.Looper.loop(Looper.java:145)
11-08 19:17:38.618: E/AndroidRuntime(6347): at android.app.ActivityThread.main(ActivityThread.java:5832)
11-08 19:17:38.618: E/AndroidRuntime(6347): at java.lang.reflect.Method.invoke(Native Method)
11-08 19:17:38.618: E/AndroidRuntime(6347): at java.lang.reflect.Method.invoke(Method.java:372)
11-08 19:17:38.618: E/AndroidRuntime(6347): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1399)
11-08 19:17:38.618: E/AndroidRuntime(6347): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1194)
11-08 19:17:38.618: E/AndroidRuntime(6347): Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'void android.app.ActionBar.setTitle(java.lang.CharSequence)' on a null object reference
11-08 19:17:38.618: E/AndroidRuntime(6347): at com.jampez.smalltalk.MainActivity.onCreate(MainActivity.java:37)
11-08 19:17:38.618: E/AndroidRuntime(6347): at android.app.Activity.performCreate(Activity.java:6221)
11-08 19:17:38.618: E/AndroidRuntime(6347): at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1119)
11-08 19:17:38.618: E/AndroidRuntime(6347): at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2611)
11-08 19:17:38.618: E/AndroidRuntime(6347): ... 10 more
4 Réponses :
Si vous ne recevez pas de barre d'action, comme Visualy, essayez de réécrire votre activité afin que vous puissiez utiliser l'appelcompaticotivité. Ce thread suggère d'utiliser une action d'action au lieu de la fragmentation. Étant donné que la baractivité d'action est obsolète, l'appelcompatiactivité devrait fonctionner simplement bien . p>
pour le numéro NullPoinger:
Toujours être cohérent avec ce que vous utilisez. Si vous décidez d'utiliser AppCompat, assurez-vous d'extension de l'appelcompaticotivité. Vérifiez toutes les importations - Vous pouvez utiliser le fragment normal au lieu de la version AppCompat.
Vérifiez vos styles et assurez-vous d'utiliser les parents AppCompat au lieu de Holo. Cela inclut également votre barre d'action. Au lieu de widget.holo.light.actionbar code> Utilisez
parent = "@ style / widget.appcompat.light.actionbar" code>.
Appelez toujours
getupportParbar code> au lieu de
gettagebar () code>. Parfois, il pourrait même être nécessaire de voter l'activité que vous obtenez avec
getactivité () code> dans un fragment à l'appelcompativement pour être sûr que vous obtenez le bon:
((appcCompativitity) getactivité ()) .GetsUpportagerBar (). Settitle (""); code>. p>
Salut, merci pour la réponse. Malheureusement, votre conseil n'a pas aidé. J'ai cependant réussi à afficher la barre d'action en utilisant une méthode légèrement différente. Cependant, il se bloque maintenant lorsque j'utilise la fonction Actionbardrawertoggle: /
Il est 2021, les choses ont changé depuis 2015. En l'absence d'exemples au contraire, je suis obligé d'utiliser AppCompativitity code> si je veux la barre d'action
code>.
* Tout d'abord, ceci incluez cette dépendance dans votre fichier de gradle * Vous devez étendre votre activité à AppCompactivitactivité forte> et commencer à utiliser la barre d'outils forte> > Au lieu de * C'est la manière dont vous utilisez la barre d'outils dans votre MainActivity fort> p> ((AppCompatActivity)getActivity()).getSupportActionBar().setTitle(R.string.home);
OK, donc aucune des réponses postées ne m'a donné beaucoup de succès. J'ai cependant réussi à faire afficher la barre d'action mais avec une fonctionnalité quelque peu limitée. P>
La première chose que j'ai faite était de remplacer la bibliothèque La limitation vient avec essayer de contrôler les aspects de la barre d'action. Je peux définir le titre et l'icône bien, mais si j'essaie d'utiliser appelccompat_v7 code> avec
android-support-v7-appelccompat code>. Cela me permet d'appeler la barre d'action à l'aide de
gettatagebar () code>. P>
actionbardrawertoggle code> i obtenez un
nullpointerexception code>. J'ai également remarqué que Tapping sur la barre d'action ne fait rien quand il ouvre normalement le tiroir. P>
Utilisez-vous Eclipse ?? Ce que j'ai posté fonctionnait bien pour moi dans le studio Android.
Oui, j'utilise Eclipse
Avez-vous essayé de mettre getwindow (). DemandeFeature (fenêtre.feature_action_bar); code>
Dans votre
Oncreate () code> méthode? Cela m'a aidé une fois. Essayez également de changer de thème sur
holo code> p>
Merci pour la réponse, cela rapporte 11-17 08: 57: 16.936: E / Androidruntime (28556): Java.lang.noschfielderRor: Pas de champ statique Dreamarrowtoggle de type [I in Class Landroid / Support / V7 / AppCompat / R $ styleable; ou ses superclasses (déclaration de 'android.support.v7.appcompat.r $ styleable' apparaît dans /data/app/com.jampez.smalltalk-3/base.apk) code>
Essayez d'utiliser Barre d'outils B> au lieu de Actionbar b>, comme Veer3383 suggère. Les projets par défaut Android Studio V7 sont déjà créés avec la barre d'outils, ce qui pourrait donc être la meilleure solution.
Le thème Holo est remarquable en son absence de la liste d'achèvement automatique, milieu 2021.
Parce que vous prolongez de
fragmentationactivité code>, au lieu de
actebaractivité code>
J'ai prolongé par ActionBarAcity, mais en plus d'être obsolète, je reçois la sortie LogCat suivante imgur.com/7IMOS6C
J'ai lu que l'appelcompaticotivité a remplacé une action d'action mais qui produit une réponse erronée similaire
ActionBarAcity étend la fragmentactivité à ses propres
AppCompaticitity CODE> doit également être associé à
GetUpPoppbarbar () code> d'ailleurs, pas
gettagebar () code>.
@PPartisan merci mais à l'aide de GetsUppPortageBar () avec l'appelcompaticotivité produit la même erreur
Avez-vous essayé d'utiliser un
AppCompat code> thème parent dans votre
styles.xml code>? C'est à dire.
theme.appcompat.light.darkactionbar Code>, en conjonction avec
AppCompatiactivité code> et
getupportAdBar () code>?
@Ppartisan je viens d'essayer cette suggestion mais je reçois toujours le même genre d'erreur
Essayez de paramétrer non seulement un thème AppCompat, mais également un parent AppCompat à la barre d'action, comme
parent = "@ style / widget.appcompat.light.actebar.solid.invers e" code> combiner cela avec
GETUPPORTARETBAR CODE>, assurez-vous simplement d'utiliser SUPPORTSUFF partout une fois que vous utilisez AppCompat.
Essayez également d'appeler la barre d'action comme ceci:
((appcCompativitity) ceci) .GetsUpPortageBar (). Settitle (""); Code> Pour être extrêmement sûr que vous obtenez la bonne activité. Dans votre fragment remplacer
ceci code> avec
getactivité () code>.
Dupliqué possible de Stackoverflow.com / Questions / 33170217 / ...