私はMainActivity - > StoriesActivity - > StoryBodyActivityに行くフローを持っています。戻るボタンはNullPointerExceptionをスローします
それぞれは、インテントを使用して変数を次の変数に渡します。
StoryBodyActivityからStoriesActivityに戻るボタンを実装しようとしていますが、StoriesActivityのauthorID = extras.getInt("author_id");
にNullPointerExceptionがスローされています。
私はNullPointerが何であるか知っています。私はちょうどこれを修正する方法を知らない! MainActivityから渡されたデータにアクセスできなくなった可能性がありますか?
注:これは、アクションバーのアイコンではなく、デバイスの戻るボタンをクリックするとうまく動作します。 StoryBodyActivityから
スニペット:MainActivityから
private int authorID;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_stories);
Bundle extras = getIntent().getExtras();
authorID = extras.getInt("author_id"); // NullPointerException here
final String authorName = extras.getString("author_name");
Log.i("click", Integer.toString(authorID));
}
スニペット:StoriesActivityから
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_story_body);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
// Respond to the action bar's Up/Home button
case android.R.id.home:
NavUtils.navigateUpFromSameTask(this);
return true;
}
return super.onOptionsItemSelected(item);
}
スニペットAndroidManifestから
Intent intent = new Intent(MainActivity.this, StoriesActivity.class);
intent.putExtra("author_id", author.getID());
intent.putExtra("author_name", author.getName());
startActivity(intent);
スニペット:
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity" android:theme="@style/AppTheme.NoActionBar" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity
android:name=".StoriesActivity"
android:theme="@style/AppTheme.NoActionBar" />
<activity
android:name=".StoryBodyActivity"
android:theme="@style/AppTheme"
android:parentActivityName="com.example.apple.bookshelf.StoriesActivity">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value="com.example.apple.bookshelf.StoriesActivity" />
</activity>
</application>
authorID = extras.getInt( "AUTHOR_ID");あなたがこの値をStoriesActivityに送る場所: –
@Hasmukhkachhatiya私の更新を参照してください – Sebastian
それは主なアクティビティから来るので、ストーリーアクティビティ –