3

アクションバーアイコンを押すと、前のフラグメントに移動する必要がありますが、移動しません。私はアクションバーのアイコンを押すと何も起こらないということです。戻るボタンがアクションバーで動作していません

public class SecFrag extends Fragment { 

// constructor and onCreateView goes here 

    @Override 
    public void onActivityCreated(@Nullable Bundle savedInstanceState) { 
     super.onActivityCreated(savedInstanceState); 
     Toolbar toolbar = (Toolbar)getActivity().findViewById(R.id.toolbar); 
     ((AppCompatActivity)getActivity()).setSupportActionBar(toolbar); 
     ActionBar actionBar=((AppCompatActivity)  getActivity()).getSupportActionBar(); 
     actionBar.setDisplayShowHomeEnabled(true); 
     actionBar.setDisplayHomeAsUpEnabled(true); 
     actionBar.setHomeButtonEnabled(true); 


     recyclerView= (RecyclerView) getActivity().findViewById(R.id.recyclerViewInSecFragment); 
     RecyclerAdapter adapter=new RecyclerAdapter(MainActivity.musicList,null,null); 
     recyclerView.setAdapter(adapter); 
     recyclerView.setLayoutManager(new LinearLayoutManager(getContext())); 
    } 

    @Override 
    public boolean onOptionsItemSelected(MenuItem item) { 
     Log.e("SEC",item.getItemId()+""); 
     switch (item.getItemId()) 
     { 
      case android.R.id.home: 
      { 
       Log.e("SECFRAG","CLICKED"); 
       break; 
      } 
      default:break; 
     } 
     return super.onOptionsItemSelected(item); 
    } 
} 

したがって、switch文ではandroid.R.id.homeがトリガーされません。だからなぜこれがうまくいかないのかをお勧めします。

+0

これは実際には* home *または* up *ボタンです。 「戻る」ボタンは、携帯電話の底部にあるボタンです。 –

+0

場合によっては、そのようなコードに役立ちます: [http://stackoverflow.com/a/24033351/5439793](http://stackoverflow.com/a/24033351/5439793) – Chack

答えて

1

フラグメントがホルダアクティビティの代わりにオプションメニューを処理するようにアンドロイドスタックに指示する必要があります。setHasOptionsMenu(true)をコールしてください。ドキュメントのフラグメントのonCreate()コールバックに入れることをお勧めします。これにより、ログメッセージが適切に呼び出されます。

+0

あなたの答えのおかげで、それは働いています:) – redblood

関連する問題