我想问一下,为什么我的代码在设备上运行时不起作用,但是当我在模拟器上运行时就像Genymotion一样,它运行得很好..
有人在这个link上这样说:除非在某些情况下,否则在super.onCreate()之后你不能调用Activity超类的方法。请推迟你对promptsView的初始化,直到调用了super.onCreate()之后。我仍然没有得到它,请告诉我你是否有同样的问题..
无论如何,如果我的解释不好,我很抱歉..
public class DestinationListAdapter extends ArrayAdapter<DestinationModel> {
Context context;
int layoutResourceId;
List<DestinationModel> data = Collections.emptyList();
public DestinationListAdapter(Context context, int layoutResourceId, List<DestinationModel> data) {
super(context, layoutResourceId, data);
this.layoutResourceId = layoutResourceId;
this.context = context;
this.data = data;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View row = convertView;
DestinationHolder holder = null;
if(row == null)
{
// Predicted Error At Line Below
LayoutInflater inflater = ((Activity)context).getLayoutInflater();
row = inflater.inflate(layoutResourceId, parent, false);
holder = new DestinationHolder();
holder.destination_id = (TextView) row.findViewById(R.id.destination_id);
holder.destination_name = (TextView) row.findViewById(R.id.destination_name);
row.setTag(holder);
}
else
{
holder = (DestinationHolder)row.getTag();
}
DestinationModel weather = data.get(position);
holder.destination_id.setText(weather.getDestination_id());
holder.destination_name.setText(weather.getDestination_name());
return row;
}
答案 0 :(得分:25)
确保何时返回&amp;继续以前的活动 我刚加了&amp;检查getContext()!= null
这是一个很好的例子:
阻止之前
adapter = new ExampleAdapter(getContext());
adapter.setData(items);
listView.setAdapter(adapter);
最好替换getActivity()!= null
例如:
if (getActivity()!=null){
adapter = new ExampleAdapter(getActivity());
adapter.setData(items);
listView.setAdapter(adapter);
}
我认为这解决了所有遇到与我的问题一样的错误的问题!
答案 1 :(得分:0)
实际上,当某些内容为空字节时会出现此问题。 当我们使用回收站视图时,大多数情况下都会出现。因为大多数人对RecyclerViewAdpater的onCreateView感到困惑。 一些代码编写者将Layout inflater写为Tab的布局。但是在这里,我们将使用另一种布局,其中将提到我们的内部Recyclerview布局。
view= LayoutInflater.from(mcontext).inflate(R.layout.**item_tab14**,parent,false);
答案 2 :(得分:0)
请注意您在生命周期中的位置。 getContext()
的值可能尚不可用。
例如,在DialogFragment
中,上下文将不可用,直到调用onCreateDialog()
为止。因此,请勿尝试在构造函数中创建适配器,因为此时上下文仍将为null。