ナビゲーションをツールバーに追加したいと思います。私は、あるアクティビティの断片から別のアクティビティの特定の断片に移動する必要があります。あるアクティビティのフラグメントから別のアクティビティのフラグメントに移動するにはどうすればよいですか?
それは、すべてのオレンジのラインが新しいアクティビティまたはフラグメントにナビゲート意味し、少しのようになります。
私はOTHERACTIVITYからフラグメントAにフラグメントBから移動する方法を教えてください。
ナビゲーションをツールバーに追加したいと思います。私は、あるアクティビティの断片から別のアクティビティの特定の断片に移動する必要があります。あるアクティビティのフラグメントから別のアクティビティのフラグメントに移動するにはどうすればよいですか?
それは、すべてのオレンジのラインが新しいアクティビティまたはフラグメントにナビゲート意味し、少しのようになります。
私はOTHERACTIVITYからフラグメントAにフラグメントBから移動する方法を教えてください。
を追加したカスタムツールバーのナビゲーションを表示する:Activity
1から
Fragment
Aを保持し、あなたがしたいです直接Fragment
BをActivity
にロードする。
今、私はまずFragment A
のボタンを押してから、Activity B
に直接行くことができます。それが意味
その後、あなたは単にあなたが戻っナビゲーション(?私はあなたがupNavigation
を意味すると考えている)を扱っているので、あなたは以下を上書きすることができ、すぐにあなたがActivity
2.
に到着するとFragment B
をロードすることができます。
しかし、あなたは活動2の正確なフラグメントをロードする必要がある場合は、あなたが何らかの形で知っておく必要があるため、はっきりと見る:
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
Intent intent = new Intent(this, Activity2.class);
intent.putExtra("frag", "fragmentB");
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
を使用すると、ツールバーの戻る矢印をクリックしたときに、見ることができるように、我々は合格私たちがロードしたいフラグメントを特定するという目的からの価値です。
次に、あなたのActivity2
で、単にintent extra
を取得し、スイッチまたはif statement
実行します。ここから
@Override
public void onResume(){
super.onResume();
Intent intent = getIntent();
String frag = intent.getExtras().getString("frag");
switch(frag){
case "fragmentB":
//here you can set Fragment B to your activity as usual;
fragmentManager.beginTransaction().replace(R.id.container_body, new FragmentB()).commit();
break;
}
}
を、あなたの断片Bは、あなたが今の活動に2
をすることができます示していなければなりませんアクティビティ2の中で同じことを処理して、ユーザーがバックホームの矢印をクリックしたときにどこに行くかを決定します。
私はこれがアイデアを得るのに役立つことを願っています。
注:私はインターフェイスアプローチについて考えており、これはこの方法で簡単に行うことができるため、必要ではないことを認識しました。
これを行うとエラーが発生します: –
原因:java.lang.NullPointerException:仮想メソッド 'java.lang.String android.os.Bundle.getString(java.lang.String)を呼び出そうとしました。文字列) 'を返します。 @Engvincible。 Btw私は本当にあなたのアプリが好きです、私はプレイストアでそれらを見ていた! –
ねえ、Tomに感謝します。私にこれを手伝ってもらいましょう。インテントが最初にonResumeの中でnullでないことを確認しなければなりません。私たちはあなたがより多くの助けが必要な場合にチャットすることができます – Eenvincible
使用このコードをあなたのフラグメント
fragmentManager.beginTransaction().replace(R.id.container_body, new FragmentC()).commit();
を変更するには、これらのステップを考えてみましょう
Toolbar toolbar = (Toolbar) rootView.findViewById(R.id.toolbar);
((AppCompatActivity)getActivity()).setSupportActionBar(toolbar);
((AppCompatActivity)getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true)
((AppCompatActivity)getActivity()).getSupportActionBar().setHomeButtonEnabled(true);
フラグメントAとBはそれぞれの活動で画面全体を占有していますか?そして、これらの活動で示されている断片だけですか? – Marat
コードを試しましたか? –
イベントを試しましたか?/ – Eenvincible