我知道这是一个非常问的问题,但我已经对此进行了研究,但仍然没有设法提出有效的解决方案。
问题是我尝试像这样从片段发送数据:
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 将信息从片段传递到活动的示例!
谢谢!