アクティビティA、アクティビティB、アクティビティCの3つのアクティビティがあります。アクティビティAからアクティビティBへのインテントをいくつかの値で渡しています。アクティビティBはそれを問題なく受け取ります。しかし、アクティビティCのonBackPress()
からアクティビティBを開始するときに問題が発生します。私はアクティビティCでonBackPress()
を上書きしてそこにインテントコードを入れました。私は、アクティビティCからアクティビティBを開始し、余分な値を渡すことはしません。しかし、私がバックボタンを押すと、アクティビティBの意図によって価値が得られなかったので、それは私にNPEを与えます。これを解決する方法は?1つのアクティビティから1つのアクティビティへの意図
public void onClick(View view) {
Intent i = new Intent(this, ActivityB.class);
i.putExtra("artist_id", artistsModel.getArtistID());
aContext.startActivity(i);
}
アクティビティB:
ArtistId = getIntent().getExtras().getLong("artist_id");
public void onClick(View view) {
Intent intent1 = new Intent(getApplicationContext(),ActivityC.class);
intent1.putExtra("ArtistIDs", ArtistId);
startActivity(intent1);
}
基本的に私が必要なものは、アクティビティBにおける意図はアクティビティAからではなく活動C.
アクティビティAから値を受け取るべきですアクティビティC:
public void onBackPressed() {
Intent i = new Intent(this , ActivityB.class);
startActivity(i);
}
はCからいくつかのランダムな値を入れて、あなたの問題解決@Override onActivityResultメソッド
を上書きputExtraとBには、AまたはCから来る値Bでそれを確認し、そしてそれはA. – JBR