11package com .pyn .criminalintent ;
22
3+ import android .content .Intent ;
34import android .os .Bundle ;
45import android .support .annotation .Nullable ;
56import android .support .v4 .app .Fragment ;
67import android .support .v7 .widget .LinearLayoutManager ;
78import android .support .v7 .widget .RecyclerView ;
9+ import android .util .Log ;
810import android .view .LayoutInflater ;
911import android .view .View ;
1012import android .view .ViewGroup ;
1113import android .widget .Button ;
14+ import android .widget .ImageView ;
1215import android .widget .TextView ;
1316import android .widget .Toast ;
1417
18+ import java .text .DateFormat ;
19+ import java .text .SimpleDateFormat ;
1520import java .util .List ;
21+ import java .util .Locale ;
1622
1723/**
1824 * Created by pengyanni on 2018/2/9.
@@ -21,6 +27,7 @@ public class CrimeListFragment extends Fragment {
2127
2228 private RecyclerView mCrimeRecyclerView ;
2329 private CrimeAdapter mAdapter ;
30+ // private int currentPosition = -1;
2431
2532 public enum ITEM_TYPE {
2633 ITEM_TYPE_STANDARD ,
@@ -41,63 +48,93 @@ public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container,
4148 return view ;
4249 }
4350
51+ @ Override
52+ public void onResume () {
53+ super .onResume ();
54+ updateUI ();
55+ }
56+
4457 /**
4558 * 更新UI
4659 */
4760 private void updateUI () {
4861 CrimeLab crimeLab = CrimeLab .get (getActivity ());
4962 List <Crime > crimes = crimeLab .getCrimes ();
5063
51- mAdapter = new CrimeAdapter (crimes );
52- mCrimeRecyclerView .setAdapter (mAdapter );
64+ if (mAdapter == null ) {
65+ mAdapter = new CrimeAdapter (crimes );
66+ mCrimeRecyclerView .setAdapter (mAdapter );
67+ } else {
68+ // if (currentPosition != -1) {
69+ // mAdapter.notifyItemChanged(currentPosition);
70+ // } else {
71+ mAdapter .notifyDataSetChanged ();
72+ // }
73+ }
5374 }
5475
5576 private class CrimeHolder extends RecyclerView .ViewHolder implements View .OnClickListener {
5677
5778 private TextView tvTitle , tvDate ;
5879 private Crime mCrime ;
80+ private ImageView imgSolved ;
5981
6082 public CrimeHolder (LayoutInflater inflater , ViewGroup parent ) {
6183 super (inflater .inflate (R .layout .list_item_crime , parent , false ));
6284 itemView .setOnClickListener (this );
6385
6486 tvTitle = itemView .findViewById (R .id .crime_title );
6587 tvDate = itemView .findViewById (R .id .crime_date );
88+ imgSolved = itemView .findViewById (R .id .crime_solved );
89+
6690 }
6791
6892 public void bind (Crime crime ) {
6993 mCrime = crime ;
7094 tvTitle .setText (mCrime .getTitle ());
71- tvDate .setText (mCrime .getDate ().toString ());
95+ DateFormat dateFormat = DateFormat .getDateInstance (DateFormat .FULL , Locale .ENGLISH );
96+ tvDate .setText (dateFormat .format (mCrime .getDate ()));
97+ imgSolved .setVisibility (crime .isSolved () ? View .VISIBLE : View .GONE );
7298 }
7399
74100 @ Override
75101 public void onClick (View v ) {
76- Toast . makeText (getActivity (),
77- mCrime . getTitle () + " clicked!" , Toast . LENGTH_SHORT )
78- . show ( );
102+ Intent intent = CrimePagerActivity . newIntent (getActivity (), mCrime . getId ());
103+ // currentPosition = this.getAdapterPosition();
104+ startActivity ( intent );
79105 }
80106 }
81107
82- private class CrimePoliceHolder extends RecyclerView .ViewHolder {
108+ private class CrimePoliceHolder extends RecyclerView .ViewHolder implements View . OnClickListener {
83109
84110 private TextView tvTitle , tvDate ;
85111 private Button btnPolice ;
86112 private Crime mCrime ;
113+ private ImageView imgSolved ;
87114
88115 public CrimePoliceHolder (LayoutInflater inflater , ViewGroup parent ) {
89116 super (inflater .inflate (R .layout .list_item_crime , parent , false ));
117+ itemView .setOnClickListener (this );
90118
91119 tvTitle = itemView .findViewById (R .id .crime_title );
92120 tvDate = itemView .findViewById (R .id .crime_date );
93121 btnPolice = itemView .findViewById (R .id .crime_police );
122+ imgSolved = itemView .findViewById (R .id .crime_solved );
94123 btnPolice .setVisibility (View .VISIBLE );
95124 }
96125
97126 public void bind (Crime crime ) {
98127 mCrime = crime ;
99128 tvTitle .setText (mCrime .getTitle ());
100129 tvDate .setText (mCrime .getDate ().toString ());
130+ imgSolved .setVisibility (crime .isSolved () ? View .VISIBLE : View .GONE );
131+ }
132+
133+ @ Override
134+ public void onClick (View v ) {
135+ Intent intent = CrimePagerActivity .newIntent (getActivity (), mCrime .getId ());
136+ // currentPosition = this.getAdapterPosition();
137+ startActivity (intent );
101138 }
102139 }
103140
0 commit comments