2014-12-15 17 views

Odpowiedz

8

Ten błąd występuje, ponieważ tworzysz obiekt i przekazujesz go do innej zmiennej referencyjnej klasy. Ponieważ getActionManager podaje obiekt android.app.ActionBar, ale próbujesz przypisać obiekt klasy android.app.ActionBar do android.support.v7.app.ActionBar.

Jednak obie te klasy zapewniają tę samą funkcjonalność. android.support.v7.app.ActionBar Klasa jest używana, gdy nasza wersja min-sdk jest mniejsza niż api 11. Aby uzyskać obiekt ActionBar poniżej api 11, potrzebujemy obiektu klasy android.support.v7.app.ActionBar.

Aby uzyskać pasek czynności, należy wykonać jedno z dwóch podejść.

  1. import android.support.v7.app.ActionBar i używać getSupportActionBar() metody aktywność OD.

  2. iść do AndroidManifest.xml pliku i zmienić <uses-sdk android:minSdkVersion="11" android:targetSdkVersion="19" /> i importować android.app.ActionBar i używać getActionBar()

1

Jeśli obsługujesz poziomy API niższe niż 11 i będziesz musiał dodać bibliotekę wsparcia v4 do swojego projektu, aby użyć paska akcji.

import android.support.v7.app.ActionBar 

Jeśli wspieranie tylko poziom API 11 i wyższa:

import android.app.ActionBar 

Aby uzyskać więcej informacji, przejdź do Official Docs

0

Upewnij się, że masz minimalny poziom api w pliku manifestu jest powyżej 11. Ponieważ pakiet android.support.v7.app.ActionBar jest obsługiwany tylko na poziomie aplikacji poniżej 11.

Więc jeśli chcesz użyć ActionBar z import android.app.ActionBar musisz mieć minimalny api poziom 11 w pliku manifestu. W przeciwnym razie będziesz musiał dodać bibliotekę wsparcia v4 do swojego projektu, aby użyć paska akcji z pakietu android.support.v7.app.ActionBar.

-1

Jeśli działa API 11 i wyższy

import android.app.ActionBar; 

Także jeśli stwierdza, że ​​istnieje już być na pewno go usunąć

+1

To już jest zjonizowany w [inna odpowiedź] (https://stackoverflow.com/a/27482395/711006). – Melebius

+0

Chociaż ten fragment kodu może rozwiązać pytanie, [w tym wyjaśnienie] (http://meta.stackexchange.com/questions/114762/explaining-entirely-code-ans -answers) naprawdę pomaga poprawić jakość twojego posta. Pamiętaj, że odpowiadasz na pytanie przeznaczone dla czytelników w przyszłości, a te osoby mogą nie znać powodów sugestii dotyczących kodu. – Isma

Powiązane problemy