2015年3月26日 星期四

[Android] 於Fragment加上自訂義的OptionMenu

如果在很多Fragement頁面中, 想要使用各別不同自訂的OptionMenu, 就必須先將setHasOptionsMenu(ture),  通常會放在onCreate()中, 然後再override onCreateOptionMenu(Menu menu, MenuInflater inflater)
 
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
   getActivity().getMenuInflater().inflate(R.menu.menu_main, menu);
   super.onCreateOptionsMenu(menu, inflater);
}

需注意與在Activity使用, 稍稍不太一樣,差異不大,  僅差在有無回傳值
 
public boolean onCreateOptionsMenu(Menu menu) {
  getMenuInflater().inflate(R.menu.menu_main, menu);
  return super.onCreateOptionsMenu(menu);
}

因為Fragment是依附在Activity上, 因此我們必須用getActivity()來取得Context,
才能夠使用Inflater這個東東。


最後我們就可以覆寫onOptionsItemSelected(MenuItem item)來撰寫各個item的處理事件
 
public boolean onOptionsItemSelected(MenuItem item) {
  ......
  return super.onOptionsItemSelected(item);
}

沒有留言:

張貼留言