為響應用戶點擊New Crime菜單項,需實現(xiàn)新方法以添加新的Crime到crime列表。那么改如何操作呢?下面請看南昌網(wǎng)絡公司小編為您詳細介紹:
在CrimeLab.java中,新增addCrime()方法,實現(xiàn)添加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)方法的回調請求。傳入該方法的參數(shù)是一個描述用戶選擇的MenuItem實例。
當前菜單僅有一個菜單項,但菜單通常包含多個菜單項。通過檢查菜單項ID,可確定被選中的是哪個菜單項,然后作出相應的響應。這個ID實際就是在菜單定義文件中賦予菜單項的資源ID。
在CrimeListFragment.java中,實現(xiàn)onOptionsItemSelected(MenuItem)方法響應菜單項的選擇事件。在該方法中, 創(chuàng)建新的Crime 實例, 并將其添加到CrimeLab 中, 然后啟動CrimePagerActivity實例,讓用戶可以編輯新創(chuàng)建的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記錄并進行編輯。
以上就是南昌網(wǎng)絡公司小編為大家介紹的關于Android開發(fā)中創(chuàng)建并響應菜單的方法,如果還有哪些不太明白的地方,可隨時來電和我們聯(lián)系,本公司專業(yè)為您解答。此外,想了解更多關于南昌網(wǎng)站建設、微信開發(fā)、APP開發(fā)等方面的資訊,歡迎關注本公司官網(wǎng)動態(tài)。