您好,登錄后才能下訂單哦!
這篇文章主要介紹“Android怎么創建并響應菜單事件”,在日常操作中,相信很多人在Android怎么創建并響應菜單事件問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Android怎么創建并響應菜單事件”的疑惑有所幫助!接下來,請跟著小編一起來學習吧!
在CrimeLab.java中,新增addCrime()方法,實現添加Crime到列表,如下代碼所示。
添加新的crime(CrimeLab.java)
...
public void addCrime(Crime c) {
mCrimes.add(c);
}
public List getCrimes() {
return mCrimes;
}
...
既然可以手動添加crime記錄,也就沒必要再讓程序自動生成100條crime記錄了。在CrimeLab.java中,刪除生成隨機crime記錄的代碼,如下圖代碼所示。
代碼清單: 再見,隨機crime記錄!(CrimeLab.java)
用戶點擊菜單中的菜單項時,fragment會收到onOptionsItemSelected(MenuItem)方法的回調請求。傳入該方法的參數是一個描述用戶選擇的MenuItem實例。
當前菜單僅有一個菜單項,但菜單通常包含多個菜單項。通過檢查菜單項ID,可確定被選中的是哪個菜單項,然后作出相應的響應。這個ID實際就是在菜單定義文件中賦予菜單項的資源ID。
在CrimeListFragment.java中,實現onOptionsItemSelected(MenuItem)方法響應菜單項的選擇事件。在該方法中, 創建新的Crime 實例, 并將其添加到CrimeLab 中, 然后啟動CrimePagerActivity實例,讓用戶可以編輯新創建的Crime記錄,如下代碼所示。
響應菜單項選擇事件(CrimeListFragment.java)
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
super.onCreateOptionsMenu(menu, inflater);
inflater.inflate(R.menu.fragment_crime_list, menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.menu_item_new_crime:
Crime crime = new Crime();
CrimeLab.get(getActivity()).addCrime(crime);
Intent intent = CrimePagerActivity
.newIntent(getActivity(), crime.getId());
startActivity(intent);
return true;
default:
return super.onOptionsItemSelected(item);
}
}
注意,onOptionsItemSelected(MenuItem)方法返回的是布爾值。一旦完成菜單項事件處理,應返回true值以表明全部任務已完成。另外,默認case表達式中,如果菜單項ID不存在,超類版本方法會被調用。
運行CriminalIntent應用,嘗試使用菜單,添加一些crime記錄并進行編輯。
到此,關于“Android怎么創建并響應菜單事件”的學習就結束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學習,快去試試吧!若想繼續學習更多相關知識,請繼續關注億速云網站,小編會繼續努力為大家帶來更多實用的文章!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。