これは非常によく聞かれる質問であることは知っていますが、調査を行ったにもかかわらず、有効な解決策を見つけることができませんでした。
問題は、次のようにフラグメントからデータを送信しようとすることです:
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 を介してフラグメントからアクティビティに情報を渡す方法のさらに別の例になる可能性があります。
ありがとう!