在适配器中查找上下文名称
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()
我无法理解哪个 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()