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