我知道这是一个非常被问到的问题,但我已经完成了对它的研究,但仍然无法提出有效的解决方案。
问题是我尝试从像这样的片段发送数据:
Intent intent = new Intent(getActivity(),EditReceiptActivity.class);
System.out.println("RECEIPT IN SETTINGS: "+ receipt);
intent.putExtra("receipt_to_be_edited", receipt);
startActivity(intent);
这是在片段上下文中完成的。
然后当我尝试在活动上下文中检索此数据时:
@Override
protected void onResume() {
Bundle extras = getIntent().getExtras();
if (extras != null) {
Receipt value = (Receipt) extras.getSerializable("receipt_to_be_edited");
System.out.println("RECEIPT ON RESUME: "+ value);
FolderDataSource f = new FolderDataSource(getApplicationContext());
f.open();
String name = f.getFolderName(value.getId());
f.close();
folder_title.setText(name);
details_txt.setText(value.getDetails());
value_txt.setText(value.getValue());
category_picked_txt.setText(value.getCategory());
folder_picked_txt.setText(name);
currency_picked_txt.setText(value.getCurrency());
location_picked_txt.setText(value.getLocation());
setImageView();
}
super.onResume();
}
我得到一个空指针异常...即使打印件在那里......空指针异常就行了:
String name = f.getFolderName(value.getId());
修改
问题是我的方法getFolderName(),它返回null,所以我的传递信息代码没有错!
所以这可能会成为如何通过Intent将信息从片段传递到活动的另一个例子!
谢谢!