第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

(Kevin筆記四)activity相互切換的時(shí)候怎么傳遞和刷新數(shù)據(jù)

標(biāo)簽:
Android

Activity的数据传输的方式已经家喻户晓了,以下:

Note note = getItem( position );

Intent intent = new Intent( activity, AddEditNoteActivity.class );

intent .putExtra("note" , note);

activity .startActivity(intent );

其中,note是一个对象,只要这个对象实现了Serializable,就可以直接用intent传递过去了

接着来看看刷新数据是怎么实现的,这里可以介绍三种不同的方式

一、activity的跳转回调方式

不过在跳转方式的时候,使用如下:

Note note = getItem( position );

Intent intent = new Intent( activity, AddEditNoteActivity.class );

intent.putExtra( "note", note );

activity .startActivityForResult( intent , 10);

在跳转的方式中,使用startActivityForResult的方式来跳转,然后再对应的activity里面的重写方法:

@Override

protected void onActivityResult( int requestCode, int resultCode , Intent data ) {

         // TODO Auto-generated method stub

        super .onActivityResult(requestCode , resultCode, data );

            if (resultCode == Activity. RESULT_OK){

                 if (requestCode == 10){

                     loadNoteData();

                }

           }

     }

你会看到那个10就是上面跳转使用的requsetCode,然后从第二个activity跳转回来的时候就会直接调用这个方法,然后就可以刷新数据了(就如上述的loadNoteData)

二、第一个activity的静态对象直接在第二个activity里面调用

     在第一个activity里面,例如名称就是MainActivity

     public static MainActivity mainActivity;


      @Override

      protected void onCreate(Bundle savedInstanceState ) {

            super .onCreate( savedInstanceState );

           setContentView(R.layout. activity_main );

            mainActivity = this ;

     }

     先设置一个静态的activity对象,然后跳转到第二个activity之后,需要刷新第一个activity的数据的时候,就直接需要直接调用MainActivity.mainActivity.loadNoteData();(loadNoteData 是个刷新数据的方法)

三、使用广播的方式来刷新数据,Recevier+Handler的方式,我们来看看怎么样做到:

第一步、建立Receiver:

public class RefreshReceiver extends BroadcastReceiver {


      public static final String REFRESH_ACTION = "refresh" ;

      private Handler handler ;


      public RefreshReceiver(Handler handler ) {

            super ();

            this .handler = handler;

     }


      @Override

      public void onReceive(Context context , Intent intent) {

            // TODO Auto-generated method stub

           String action =intent .getAction();

            if (action .equals( REFRESH_ACTION)){

                Message message =new Message();

                 intent .putExtra("action" , action);

                 message .obj = intent;

                 handler .sendMessage(message );

           }

     }


}

这样在新建receiver对象的时候就可以把handler关联起来了

第二步、在第一个activity新建receiver对象

     RefreshReceiver refreshReceiver ;

     @Override

      protected void onCreate(Bundle savedInstanceState ) {

            super .onCreate(savedInstanceState );

            setContentView(R.layout. activity_main);

             refreshReceiver = new RefreshReceiver( new Handler(){


                 @Override

                 public void handleMessage(Message msg) {

                      // TODO Auto-generated method stub

                      super .handleMessage(msg );

                     loadNoteData();

                }


        });

        registerReceiver( refreshReceiver , new IntentFilter(RefreshReceiver.REFRESH_ACTION ));

}

不过记得在onDestroy调用unregisterReceiver( refreshReceiver );

第三步、在第二个activity需要刷新第一个activity的数据的时候,就直接需要直接调用

Intent intent = new Intent(RefreshReceiver. REFRESH_ACTION);

this .sendBroadcast(intent );

通过上面三步就可以通过Receiver+handler的方式来刷新你想要的数据了

如果想看看具体怎么样的操作,可以参考我的Kevin笔记(使用的是receiver+handler的方式):http://pan.baidu.com/s/1c1ZhQsK

搜索

复制

原文链接:http://www.apkbus.com/blog-11076-60259.html

點(diǎn)擊查看更多內(nèi)容
TA 點(diǎn)贊

若覺得本文不錯(cuò),就分享一下吧!

評(píng)論

作者其他優(yōu)質(zhì)文章

正在加載中
  • 推薦
  • 評(píng)論
  • 收藏
  • 共同學(xué)習(xí),寫下你的評(píng)論
感謝您的支持,我會(huì)繼續(xù)努力的~
掃碼打賞,你說多少就多少
贊賞金額會(huì)直接到老師賬戶
支付方式
打開微信掃一掃,即可進(jìn)行掃碼打賞哦
今天注冊(cè)有機(jī)會(huì)得

100積分直接送

付費(fèi)專欄免費(fèi)學(xué)

大額優(yōu)惠券免費(fèi)領(lǐng)

立即參與 放棄機(jī)會(huì)
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)

舉報(bào)

0/150
提交
取消