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).

 

Jak se ti článek líbil?

Komentáře (0)

Přidat komentář