后退按钮在 actionBar 中不起作用
Back button is Not working in actionBar
通过按 actionBar 图标,我应该转到上一个 Fragment,但它不会。我的意思是当我按下操作栏图标时没有任何反应。
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
。所以请提出为什么这不起作用。
您需要通过调用 setHasOptionsMenu(true)
指示 android 堆栈您的片段将处理选项菜单而不是持有者 activity 并且文档建议将其放入您片段的 onCreate()
回调。这将使您的日志消息被适当地调用。
通过按 actionBar 图标,我应该转到上一个 Fragment,但它不会。我的意思是当我按下操作栏图标时没有任何反应。
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
。所以请提出为什么这不起作用。
您需要通过调用 setHasOptionsMenu(true)
指示 android 堆栈您的片段将处理选项菜单而不是持有者 activity 并且文档建议将其放入您片段的 onCreate()
回调。这将使您的日志消息被适当地调用。