![](/img/trans.png)
[英]Why do I get a null pointer exception while passing the data from activity to fragment?
[英]Null Pointer Exception when passing value from Fragment to Activity
父活动具有这样的实例化的字符串列表。
List<String> taskList = asList("Write some code", "Database stuff", "Test the cloud!");
它还具有HeadlineSelected-listener实现为接口,以及ArticleSelected-method。 ArticleSelected方法从列表中删除一个元素。
public interface OnHeadlineSelectedListener {
public void onArticleSelected(int position);
}
@Override
public void onArticleSelected(int position) {
taskList.remove(position);
}
在该片段中,我有一个HeadlineListener来向其父活动发送内容。
OnHeadlineSelectedListener mCallback;
在片段中,选择项目后,我将使用HeadlineListener。
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
mCallback.onArticleSelected(position);
finish();
}
我可以很好地启动该应用程序,但是当我选择一个项目时,该应用程序将停止并且出现空指针异常。 我究竟做错了什么?
但是当我选择一个项目时,应用程序停止运行,并且出现空指针异常。 我究竟做错了什么?
您需要初始化mCallBack
。 我不确定初始化是否正确。
但是您需要以下内容。
报价文件
片段在其onAttach()生命周期方法中捕获接口实现,然后可以调用Interface方法以与Activity通信。
@Override
public void onAttach(Activity activity) {
super.onAttach(activity);
// This makes sure that the container activity has implemented
// the callback interface. If not, it throws an exception
try {
mCallback = (OnHeadlineSelectedListener) activity;
} catch (ClassCastException e) {
throw new ClassCastException(activity.toString()
+ " must implement OnHeadlineSelectedListener");
}
}
我收到错误的原因是因为我通过在cosntructor中设置其值使List不可更改。 如果在创建taskList作为成员变量时根本没有设置任何值。
private List<String> taskList;
然后,我可以将其放入onCreate中的干净列表中
taskList = new ArrayList<String>();
然后添加元素。 由于我打算将其放大以从onCreate的数据库中读取,因此这不是问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.