在适配器中查找上下文名称

finding Context name inside an Adapter

我无法理解哪个 activity 启动了我的适配器。 这两个活动对适配器的请求几乎相同,所以我认为对两个活动中的两个 recyclerView 使用相同的适配器。 出于某种原因,在调试器中我发现(显然)context.getApplicationInfo().name 具有价值,但是当我尝试使用 "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;
   }
}

在搜索 getApplicationInfo() 和 getApplicationContext() 等 Context 函数后找到了答案。看了亚历山大·卢卡斯的回答后:

我了解 getContext() "Returns the context the view is currently running in. Usually the currently active Activity."

所以,我备份并尝试了 mContext 上的功能,直到我发现我的适配器在哪里运行:

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

上面写的将为您提供 Activity 名称,就像您最初创建它时所命名的一样。 对于包名称,请改用:

mContext.getClass().getName()