Cette activité a déjà une barre d'action fournie par le décor de fenêtre. Ne demandez pas Window.FEATURE_ACTION_BAR et définissez windowActionBar sur false dans votre thème pour utiliser une barre d'outils à la place
C'est l'erreur que j'ai eue, j'ai cherché des solutions mais je n'ai pas trouvé de solution. Voici mon code:
styles.xml
<!-- Base application theme. -->
<style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
<item name="colorPrimary">@color/myPrimaryColor</item>
<item name="colorPrimaryDark">@color/myPrimaryDarkColor</item>
<item name="colorAccent">@color/myAccentColor</item>
<item name="Android:textColorPrimary">@color/myTextPrimaryColor</item>
</style>
<style name="ActionBarPopupThemeOverlay" parent="Theme.AppCompat.Light.NoActionBar">
<item name="windowActionBar">false</item>
</style>
<style name="Toolbartitle" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Title">
<item name="Android:textColor">@Android:color/white</item>
</style>
<style name="ToolbarSubtitle" parent="@style/TextAppearance.Widget.AppCompat.Toolbar.Subtitle">
<item name="Android:textColor">#56FFFFFF</item>
</style>
send_comment.xml (ma disposition d'activité)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:orientation="vertical"
Android:layout_width="match_parent"
Android:layout_height="match_parent">
<Android.support.v7.widget.Toolbar
xmlns:app="http://schemas.Android.com/apk/res-auto"
Android:id="@+id/my_toolbar"
Android:layout_height="128dp"
app:popupTheme="@style/ActionBarPopupThemeOverlay"
Android:layout_width="match_parent"
Android:background="?attr/colorPrimary"
Android:paddingLeft="72dp"
Android:paddingBottom="16dp"
Android:gravity="bottom"
app:titleTextAppearance="@style/Toolbartitle"
app:subtitleTextAppearance="@style/ToolbarSubtitle"
app:theme="@style/ThemeOverlay.AppCompat.Light"
Android:title="תגובה"
/>
</RelativeLayout>
SendComment.Java
public class SendComment extends ActionBarActivity {
private Toolbar toolbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.send_comment);
toolbar = (Toolbar) findViewById(R.id.my_toolbar);
toolbar.setTitle("");
setSupportActionBar(toolbar);
}
}
Qu'est-ce que je fais mal?
Dans votre utilisation du style AppTheme,
Theme.AppCompat.Light.NoActionBar
au lieu de
Theme.AppCompat.Light.DarkActionBar
Vous définissez un thème qui a une barre d'action, puis vous définissez la barre d'outils comme une barre d'action. C'est pourquoi vous obtenez cette erreur.
Utilisez plutôt le thème qui n'a pas de barre d'action et cela résoudra le problème.
Utilisez le style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar"
et partout utilisent le même thème que celui-ci pour maintenir le flux de contexte vers Android car il ne se confond pas entre deux ActionBar.
Define this style
<style name="NoActionBarTheme" parent="Theme.AppCompat.Light.NoActionBar">
<!-- Customize your theme here. -->
<item name="textColorError">@color/design_textinput_error_color_light</item>
<item name="Android:windowNoTitle">true</item>
<item name="Android:windowActionBar">false</item>
<item name="Android:actionMenuTextColor">@color/color_white</item>
<item name="drawerArrowStyle">@style/DrawerArrowStyle</item>
</style>
Please use this in your androidmanifest.xml file.This will resolve your problem.