我为我的应用程序在我的手机上运行构建apk时出现以下错误,我不确定实际错误在哪里,所以我不知道如何解决它。
我查看了我的代码,但没有看到任何错误。任何帮助,将不胜感激。谢谢
以下是我的一些代码:
public View getView(int position, View convertView, ViewGroup parent){
View v = convertView;
if(v == null){
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
v = inflater.inflate(R.layout.cell, parent, false);
}
return v;
}
答案 0 :(得分:0)
问题在于:((Activity)context).getLayoutInflater();
。您无法将context
投射到某个活动。对于那个电话你应该这样做:
context.getLayoutInflater();
如果这不起作用(因为你在片段中,或在活动之外),那么执行:
getActivity().getLayoutInflater();
您还可以使用getApplicationContext
,它将从应用中的任何位置获取上下文,与上面的getActivity
相对应,它将获取当前活动的上下文:
getApplicationContext().getLayoutInflater();
无论哪种方式,您都无法将上下文强制转换为Activity。
答案 1 :(得分:0)
两个解决方案一个用于使用 getApplicationContext()获取应用程序上下文 ,适配器构造函数中的第二个包含此(Context context,int res,List obj)声明一个类型为context的私有变量,并在适配器中分配它,如this.context = context;
public View getView(int position, View convertView, ViewGroup parent){
View v = convertView;
if(v == null){
LayoutInflater inflater = (getApplicationContext()).getLayoutInflater();
v = inflater.inflate(R.layout.cell, parent, false);
}
return v;
}