Android编程权威指南(第二版)— 第13章挑战练习-13.8

代码所属的位置是:https://gitee.com/fulinux/criminalIntent

commit 1cdecd578c81d3ec6a522a0e317f2d1a3ae47c7f

Author: fulinux
Date:   Mon Oct 9 17:54:16 2017 +0800

    完成13.8挑战练习 用于RecyclerView的空视图

diff --git a/app/src/main/java/com/example/android/criminalintent/CrimeListFragment.java b/app/src/main/java/com/example/android/criminalintent/CrimeListFragment.java
index ec2821f..b336c57 100644
--- a/app/src/main/java/com/example/android/criminalintent/CrimeListFragment.java
+++ b/app/src/main/java/com/example/android/criminalintent/CrimeListFragment.java
@@ -13,6 +13,7 @@ import android.view.MenuInflater;
 import android.view.MenuItem;
 import android.view.View;
 import android.view.ViewGroup;
+import android.widget.Button;
 import android.widget.CheckBox;
 import android.widget.TextView;

@@ -31,6 +32,8 @@ public class CrimeListFragment extends Fragment {
     private CrimeAdapter mAdapter;
     private int mPosition;
     private boolean mSubtitleVisible;
+    private TextView mTextView;
+    private Button mButton;

     @Override
     public void onCreate(Bundle savedInstanceState) {
@@ -46,6 +49,18 @@ public class CrimeListFragment extends Fragment {
         mCrimeRecyclerView = (RecyclerView) view.findViewById(R.id.crime_recycler_view);
         mCrimeRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));

+        mTextView = (TextView) view.findViewById(R.id.no_crime_to_show_text);
+        mButton = (Button) view.findViewById(R.id.new_crime_btn);
+        mButton.setOnClickListener(new View.OnClickListener(){
+            @Override
+            public void onClick(View v) {
+                Crime crime = new Crime();
+                CrimeLab.get(getActivity()).addCrime(crime);
+                Intent intent = CrimePagerActivity.newIntent(getActivity(), crime.getId());
+                startActivity(intent);
+            }
+        });
+
         if(savedInstanceState != null) {
             mSubtitleVisible = savedInstanceState.getBoolean(SAVED_SUBTITLE_VISIBLE);
         }
@@ -126,6 +141,14 @@ public class CrimeListFragment extends Fragment {
         CrimeLab crimeLab = CrimeLab.get(getActivity());
         List crimes = crimeLab.getCrimes();

+        if(crimes.size() > 0) {
+            mTextView.setVisibility(View.GONE);
+            mButton.setVisibility(View.GONE);
+        } else {
+            mTextView.setVisibility(View.VISIBLE);
+            mButton.setVisibility(View.VISIBLE);
+        }
+
         if(mAdapter == null) {
             mAdapter = new CrimeAdapter(crimes);
             mCrimeRecyclerView.setAdapter(mAdapter);
diff --git a/app/src/main/res/layout/fragment_crime_list.xml b/app/src/main/res/layout/fragment_crime_list.xml
index 60c5277..f541f65 100644
--- a/app/src/main/res/layout/fragment_crime_list.xml
+++ b/app/src/main/res/layout/fragment_crime_list.xml
@@ -1,8 +1,38 @@
 
--    xmlns:android="http://schemas.android.com/apk/res/android"
-    android:id="@+id/crime_recycler_view"
-    android:layout_width="match_parent"
-    android:layout_height="match_parent">
++              android:layout_width="match_parent"
+              android:layout_height="match_parent"
+              android:orientation="vertical"
+              xmlns:tools="http://schemas.android.com/tools">

-

\ No newline at end of file
+    +        xmlns:android="http://schemas.android.com/apk/res/android"
+        android:id="@+id/crime_recycler_view"
+        android:layout_width="match_parent"
+        android:layout_height="match_parent">
+   

+
+    +        android:layout_centerInParent="true"
+        android:orientation="vertical"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content">
+
+        +            android:id="@+id/no_crime_to_show_text"
+            android:layout_gravity="center|bottom"
+            android:gravity="center"
+            android:text="@string/no_crime_to_show"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"/>
+
+       

你可能感兴趣的:(Android,篇)