Android.widget.Toolbar ne peut pas être converti en android.soutien.v7.widget.Barre

j'ai une barre d'outils.xml:

<android.support.v7.widget.Toolbar
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@color/color_primary"
android:elevation="4dp"
android:theme="@style/ThemeOverlay.AppCompat.Dark" />

j'ai un tag pour une autre de mes activités mises en page:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent"
android:theme="@style/AppTheme">

<include
    layout="@layout/toolbar"
    android:id="@+id/tb">
</include>

<android.support.v7.widget.RecyclerView
    android:id="@+id/grade_list"
    android:scrollbars="vertical"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#FFFFFF" />

Et je l'ai implémenté dans mon activité qui étend L'Appcompatactivité:

Toolbar toolbar;
    toolbar = (Toolbar)findViewById(R.id.tb);
    setSupportActionBar(toolbar);

Cependant, j'obtiens l'erreur suivante quand je lance mon application:

Error:(26, 29) error: incompatible types: android.widget.Toolbar cannot be converted to android.support.v7.widget.Toolbar

de plus, lorsque je regarde ma mise en page dans l'éditeur, je reçois le message suivant:

Missing styles. Is the correct theme chosen for this layout?
Use the theme combo box above the layout to choose a different layout, or to fix the theme style references.
Failed to find style 'toolbarStyle' in current layout.

Et mon style.xml:

<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
    <item name="colorPrimary">@color/color_primary</item>
    <item name="colorPrimaryDark">@color/color_primaryDark</item>
    <item name="colorAccent">@color/color_accent</item>
    <item name="colorControlNormal">@color/color_accent</item>
</style>

je ne vois pas où je vais mal. Le thème est sélectionné dans l'éditeur et mon fichier de manifeste. Toute aide est appréciée comme toujours!

18
demandé sur Markoe7 2015-08-04 03:22:02

2 réponses

Vous utilisez android.support.v7.widget.Toolbar dans votre XML, mais dans votre code java vous importez android.widget.Toolbar qui est d'un type différent. Changez votre importation en android.support.v7.widget.Toolbar et ça devrait marcher.

47
répondu Gennadii Saprykin 2015-08-04 00:27:30
android.support.v7.widget.Toolbar toolbar;


toolbar = (android.support.v7.widget.Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);
1
répondu Shubham Shendre 2018-08-20 11:33:25