11package me .brucezz .sample ;
22
33import android .os .Bundle ;
4+ import android .os .Handler ;
5+ import android .os .Message ;
46import android .support .v7 .app .AppCompatActivity ;
7+ import android .util .Log ;
58import android .view .Menu ;
69import android .view .MenuItem ;
710import android .view .View ;
@@ -16,19 +19,44 @@ public class MainActivity extends AppCompatActivity {
1619 SimpleCardAdapter mCardAdapter ;
1720 private List <Card > mCards ;
1821
22+ private Handler mHandler = new Handler () {
23+ @ Override
24+ public void handleMessage (Message msg ) {
25+ super .handleMessage (msg );
26+ modifyData ();
27+ mHandler .sendEmptyMessageDelayed (0 , 2000 );
28+ }
29+ };
30+
31+ @ Override
32+ protected void onDestroy () {
33+ super .onDestroy ();
34+ mHandler .removeMessages (0 );
35+ }
36+
1937 @ Override
2038 protected void onCreate (Bundle savedInstanceState ) {
2139 super .onCreate (savedInstanceState );
2240 setContentView (R .layout .activity_main );
2341
2442 mCardStackView = (CardStackView ) findViewById (R .id .card_stack_view );
25- mCardStackView .setOnCardClickListener (new CardStackView .onCardClickListener () {
43+ mCardStackView .setOnCardClickListener (new CardStackView .OnCardClickListener () {
2644 @ Override
2745 public void onClick (View view , int realIndex , int initialIndex ) {
2846 Toast .makeText (MainActivity .this , "点击了第" + realIndex + "个卡片 => " + mCards .get (initialIndex ).mTitle ,
2947 Toast .LENGTH_SHORT ).show ();
3048 }
3149 });
50+ mCardStackView .setOnPositionChangedListener (new CardStackView .OnPositionChangedListener () {
51+ @ Override
52+ public void onPositionChanged (List <Integer > position ) {
53+ StringBuilder sb = new StringBuilder ();
54+ for (Integer integer : position ) {
55+ sb .append (integer ).append (" " );
56+ }
57+ Log .d ("TAG" , "onPositionChanged: " + sb .toString ());
58+ }
59+ });
3260
3361 mCards = fakeCards ();
3462 mCardAdapter = new SimpleCardAdapter (this , mCards );
@@ -44,7 +72,7 @@ private List<Card> fakeCards() {
4472
4573 @ Override
4674 public boolean onCreateOptionsMenu (Menu menu ) {
47- menu .add (1 , 1 , 1 , "修改数据 " );
75+ menu .add (1 , 1 , 1 , "定时2s修改数据 " );
4876 menu .add (1 , 2 , 1 , "重置" );
4977 return super .onCreateOptionsMenu (menu );
5078 }
@@ -53,15 +81,19 @@ public boolean onCreateOptionsMenu(Menu menu) {
5381 public boolean onOptionsItemSelected (MenuItem item ) {
5482 switch (item .getItemId ()) {
5583 case 1 :
56- for (Card card : mCards ) {
57- card .mTitle += "X" ;
58- }
59- mCardAdapter .notifyDataSetChanged ();
84+ mHandler .sendEmptyMessageDelayed (0 , 2000 );
6085 break ;
6186 case 2 :
6287 recreate ();
6388 break ;
6489 }
6590 return super .onOptionsItemSelected (item );
6691 }
92+
93+ private void modifyData () {
94+ for (int i = 0 ; i < mCards .size (); i ++) {
95+ mCards .get (i ).mTitle += String .valueOf (i );
96+ }
97+ mCardAdapter .notifyDataSetChanged ();
98+ }
6799}
0 commit comments