在适配器内部查找上下文名称

问题描述 投票:0回答:1

我在了解启动适配器的活动时遇到问题。这两个活动都要求适配器几乎相同,所以我认为在2个活动中为两个recyclerViews使用相同的适配器。出于某种原因,在调试器中,我发现(显然)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;
   }
}
android-studio recycler-adapter android-context
1个回答
0
投票

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

https://stackoverflow.com/a/10641257/11388670

我知道getContext()“返回视图当前正在其中运行的上下文。通常是当前活动的Activity。

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

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

上面写的内容将为您提供创建活动名称的名称,就像您最初创建活动名称时一样。对于软件包名称,请改用:

mContext.getClass().getName()

© www.soinside.com 2019 - 2024. All rights reserved.