創(chuàng)建菜單
- Activity類提供了管理菜單的回調(diào)函數(shù),需要選項(xiàng)菜單時(shí)贵扰,直接調(diào)用Activity的
onCreateOptionsMenu(Menu)
方法 - Fragment有一套自己的選項(xiàng)菜單回調(diào)函數(shù),在fragment中創(chuàng)建菜單嗦锐,覆蓋
onCreateOptionsMenu(Menu, MenuInflater)
方法
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.fragment_crime_list, menu);
}
Fragment.onCreateOptionsMenu(Menu, MenuInflater)
方法是由FragmentManager負(fù)責(zé)調(diào)用的顶猜,當(dāng)Activity接受操作系統(tǒng)的onCreateOptionsMenu(...)
方法回調(diào)請(qǐng)求時(shí),必須明確告訴FragmentManager:其管理的fragment應(yīng)接收onCreateOptionsMenu(...)
方法的調(diào)用指令粤剧,需在fragment中加入以下方法:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
響應(yīng)菜單項(xiàng)選擇
用戶點(diǎn)擊菜單項(xiàng)時(shí)歇竟,fragment會(huì)收到onOptionsItemSelected(MenuItem)
方法的回調(diào)請(qǐng)求,實(shí)現(xiàn)菜單項(xiàng)響應(yīng)結(jié)果直接覆寫(xiě)onOptionsItemSelected(MenuItem)
方法
@Override
public boolean onOptionsItemSelected(MenuItem item) {
return super.onOptionsItemSelected(item);
}
注意onOptionsItemSelected(MenuItem)
方法返回的是布爾值抵恋,一旦完成菜單項(xiàng)事件處理焕议,應(yīng)返回true值以表明全部任務(wù)已完成
實(shí)現(xiàn)層級(jí)式導(dǎo)航
層級(jí)式導(dǎo)航可在應(yīng)用內(nèi)逐級(jí)向上導(dǎo)航,只需在AndroidManifest.xml
中給需要向上逐級(jí)導(dǎo)航的Activity添加parentActivityName
屬性:
<activity
android:name=".CrimePagerActivity"
android:label="@string/app_name"
android:parentActivityName=".CrimeListActivity"
></activity>