Android - jak zjisit Activity z Context (Context cannot be converted to Activity)

Android - jak zjisit Activity z Context (Context cannot be converted to Activity)

Android - jak zjisit Activity z Context (Context cannot be converted to Activity)?

 

S chybou Context cannot be converted to Activity se můžeme setkat např. zde:

ActivityCompat.requestPermissions(context, new String[]{permission}, requestCode);

 

Tento kód vyvolá chybu:

error: incompatible types: Context cannot be converted to Activity
            ActivityCompat.requestPermissions(context, new String[]{permission}, requestCode);

 

Řešení

Potřebujeme z contextu zjistit Activity, to uděláme jednoduše takto:

(Activity) context

 

Celé volání pak vypadá:

ActivityCompat.requestPermissions((Activity) context, new String[]{permission}, requestCode); 

 

Dodatek:

Pokud do metody posíláme (Application) Context z getApplicationContext(), tak patrně nastane chyba:

java.lang.ClassCastException: android.app.Application cannot be cast to android.app.Activity

 

Řešením je předat (Activity) Context, to znamená místo getApplicationContext() předat MainActivity.this (dle třídy).

 

Komentáře

Vaše reakce na Android - jak zjisit Activity z Context (Context cannot be converted to Activity)

Související obsah

android

java

android-studio

Reference

Podívejte se na naše reference

Prohlédnout

Aplikace

Podívejte se na naše aplikace

Prohlédnout

Co umíme?

Podívejte se co umíme

Prohlédnout

Co umíme?

Vytváříme sofistikované aplikace pro náročné

Od webových aplikací přes android až po převodové můstky či složité informační systémy.

Podívejte se k nám

Máte ještě čas? Podívejte se na další rubriky

Tento web používá soubory cookie. Dalším procházením tohoto webu vyjadřujete souhlas s jejich používáním.. Více informací zde.