Android程式設計權威指南(第二版)— 第13章挑戰練習-13.6
程式碼所屬的位置是:https://gitee.com/fulinux/criminalIntent
commit f12acd8c13420f8e5020510b3fd1567da5f5696f
Author: fulinux <fulinux@sina.com>Date: Mon Oct 9 16:24:15 2017 +0800
完成13.6的挑戰練習:刪除crime記錄
diff --git a/app/src/main/java/com/example/android/criminalintent/CrimeFragment.java b/app/src/main/java/com/example/android/criminalintent/CrimeFragment.java
index e62059e..0052186 100644
--- a/app/src/main/java/com/example/android/criminalintent/CrimeFragment.java
+++ b/app/src/main/java/com/example/android/criminalintent/CrimeFragment.java
@@ -10,6 +10,9 @@ import android.text.Editable;
import android.text.TextWatcher;
import android.text.format.DateFormat;
import android.view.LayoutInflater;
+import android.view.Menu;
+import android.view.MenuInflater;
+import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
@@ -67,6 +70,7 @@ public class CrimeFragment extends Fragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
+ setHasOptionsMenu(true);
// mCrime = new Crime();
// UUID crimeId = (UUID) getActivity().getIntent()
// .getSerializableExtra(CrimePagerActivity.EXTRA_CRIME_ID);
@@ -157,6 +161,28 @@ public class CrimeFragment extends Fragment {
}
}
+ @Override
+ public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
+ super.onCreateOptionsMenu(menu, inflater);
+ inflater.inflate(R.menu.fragment_crime_page, menu);
+ }
+
+ @Override
+ public boolean onOptionsItemSelected(MenuItem item) {
+ switch (item.getItemId()) {
+ case R.id.menu_item_del_crime:
+ CrimeLab.get(getActivity()).delCrime(mCrime);
+ if(getActivity().getSupportFragmentManager().getBackStackEntryCount() <= 0) {
+ getActivity().finish();
+ } else {
+ getActivity().getSupportFragmentManager().popBackStack();
+ }
+ return true;
+ default:
+ return super.onOptionsItemSelected(item);
+ }
+ }
+
private void updateTime() {
mTimeButton.setText(DateFormat.format("kk:mm:ss", mCrime.getDate()).toString());
}
diff --git a/app/src/main/java/com/example/android/criminalintent/CrimeLab.java b/app/src/main/java/com/example/android/criminalintent/CrimeLab.java
index 6c76c88..dc35451 100644
--- a/app/src/main/java/com/example/android/criminalintent/CrimeLab.java
+++ b/app/src/main/java/com/example/android/criminalintent/CrimeLab.java
@@ -36,6 +36,10 @@ public class CrimeLab {
mCrimes.add(c);
}
+ public void delCrime(Crime c) {
+ mCrimes.remove(c);
+ }
+
public List<Crime> getCrimes() {
return mCrimes;
}
diff --git a/app/src/main/res/drawable-hdpi/ic_menu_del.png b/app/src/main/res/drawable-hdpi/ic_menu_del.png
new file mode 100644
index 0000000..cfe3b8e
Binary files /dev/null and b/app/src/main/res/drawable-hdpi/ic_menu_del.png differ
diff --git a/app/src/main/res/drawable-mdpi/ic_menu_del.png b/app/src/main/res/drawable-mdpi/ic_menu_del.png
new file mode 100644
index 0000000..3f22013
Binary files /dev/null and b/app/src/main/res/drawable-mdpi/ic_menu_del.png differ
diff --git a/app/src/main/res/drawable-xhdpi/ic_menu_del.png b/app/src/main/res/drawable-xhdpi/ic_menu_del.png
new file mode 100644
index 0000000..10ac02d
Binary files /dev/null and b/app/src/main/res/drawable-xhdpi/ic_menu_del.png differ
diff --git a/app/src/main/res/drawable-xxhdpi/ic_menu_del.png b/app/src/main/res/drawable-xxhdpi/ic_menu_del.png
new file mode 100644
index 0000000..3f7e36b
Binary files /dev/null and b/app/src/main/res/drawable-xxhdpi/ic_menu_del.png differ
diff --git a/app/src/main/res/menu/fragment_crime_page.xml b/app/src/main/res/menu/fragment_crime_page.xml
index fe187c0..0ec6083 100644
--- a/app/src/main/res/menu/fragment_crime_page.xml
+++ b/app/src/main/res/menu/fragment_crime_page.xml
@@ -1,4 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
-<menu xmlns:android="http://schemas.android.com/apk/res/android">
+<menu xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto">
+
+ <item
+ android:id="@+id/menu_item_del_crime"
+ android:title="Delete Crime"
+ android:icon="@drawable/ic_menu_del"
+ app:showAsAction="ifRoom"/>
</menu>
\ No newline at end of file
相關文章
- Android程式設計權威指南(第二版)— 第10章挑戰練習Android程式設計
- Android程式設計權威指南(第二版)— 第13章挑戰練習-13.8Android程式設計
- Android程式設計權威指南(第2版)—第14章挑戰練習Android程式設計
- Android程式設計權威指南(第2版)—第15章挑戰練習Android程式設計
- Android程式設計權威指南(第2版)—第12章挑戰練習Android程式設計
- Android程式設計權威指南(第二版)學習筆記(十五)—— 第15章 隱式 IntentAndroid程式設計筆記Intent
- Android程式設計權威指南(第二版)學習筆記(十六)—— 第16章 使用 intent 拍照Android程式設計筆記Intent
- 《Android程式設計權威指南 第3版》PDF版電子書下載Android程式設計
- Swift程式設計權威指南第2版 讀後收穫Swift程式設計
- Android程式設計權威指南 - 第10章 使用fragment argumentAndroid程式設計Fragment
- CUDA C 程式設計權威指南 學習筆記:第二章 CUDA程式設計模型程式設計筆記模型
- 小記《SQL權威指南(第4版)》SQL
- 筆記:《挑戰程式設計競賽(第2版)》(2)筆記程式設計
- 筆記:《挑戰程式設計競賽(第2版)》(3)筆記程式設計
- 筆記:《挑戰程式設計競賽(第2版)》(1)筆記程式設計
- 第二週程式設計練習程式設計
- 《IDA Pro權威指南(第2版)》編輯手記
- 程式設計挑戰程式設計
- Elasticsearch 權威指南(中文版)Elasticsearch
- HBase權威指南【中文版】
- 電子書下載:MySQL5權威指南(第3版)MySql
- 《http權威指南》學習感想HTTP
- C程式設計語言(第2版·新版)練習題1-6C程式程式設計
- C程式設計語言(第2版·新版)練習題1-7C程式程式設計
- C程式設計語言(第2版·新版)練習題1-4C程式程式設計
- C程式設計語言(第2版·新版)練習題1-5C程式程式設計
- C程式設計語言(第2版·新版)練習題1-8C程式程式設計
- HTTP權威指南學習-第12章 基本認證機制HTTP
- 《Java語言程式設計(基礎篇)(原書第10版)》第2~4章部分程式設計練習題程式碼Java程式設計
- 《挑戰程式設計競賽(第2版)》譯者訪談問題有獎徵集程式設計
- JavaScript 權威指南(第六版)學習筆記JavaScript筆記
- 《JavaScript權威指南第六版》學習筆記-物件JavaScript筆記物件
- 程式設計練習程式設計
- Hadoop權威指南 第4章 關於YARNHadoopYarn
- Git權威指南Git
- HTTP權威指南HTTP
- 安卓權威指南第三版第16章拍照閃退問題安卓
- 《JavaScript權威指南(第6版)》誠徵讀者參與譯稿審校!JavaScript