поиск имени контекста внутри адаптера - PullRequest
1 голос
/ 05 мая 2020

У меня проблемы с пониманием того, какое действие запустило мой адаптер. Оба действия запрашивают адаптер практически одинаково, поэтому я решил использовать один и тот же адаптер для обоих recyclerViews в двух действиях. По какой-то причине в отладчике я обнаружил, что (очевидно) имя context.getApplicationInfo (). Имеет значение, но когда я пытаюсь использовать "g", оно равно null ...

public class CustomCatalogAdapter extends RecyclerView.Adapter<CustomCatalogAdapter.MyViewHolder>{

   private Context mContext;
   ...

   @Override
   public void onBindViewHolder(CustomCatalogAdapter.MyViewHolder holder, final int position) {
       ApplicationInfo applicationInfo = mContext.getApplicationInfo();
       String g = applicationInfo.name;
   }
}

1 Ответ

1 голос
/ 11 мая 2020

Ответ нашел после поиска в функциях контекста, таких как getApplicationInfo () и getApplicationContext (). Посмотрев на ответ Александра Лукаса:

{ ссылка }

, я понял, что getContext () "возвращает контекст, в котором в настоящее время выполняется представление. Обычно активная в данный момент Activity."

Итак, я сделал резервную копию и попробовал функции в mContext, пока не выяснил, где работает мой адаптер:

String myActivityName = mContext.getClass().getSimpleName();

Написанное выше даст вам имя вашей деятельности, как вы назвали ее при создании. Вместо имени пакета используйте:

mContext.getClass().getName()

...