Android startActivityForResult的基本用法詳解
知識準(zhǔn)備:
1、startActivityForResult(Intent intent, int requestCode):啟動 Activity,同時等待該 Activity 返回數(shù)據(jù)。只有該 Activity 銷毀時數(shù)據(jù)才會被返回。參數(shù) 1:意圖,封裝要啟動的 Activity,當(dāng)然也可以攜帶數(shù)據(jù)參數(shù) 2:請求碼,如果是大于 0 的整數(shù),那么該請求碼會在 onActivityResult 中的 requestCode中出現(xiàn),如果小于等于 0,則不會被返回。
2、onActivityResult(int requestCode, int resultCode, Intent data):當(dāng)打開的 Activity 銷毀的時候該方法會被調(diào)用,從該方法中獲取銷毀的 Activity 設(shè)置的數(shù)據(jù)。參數(shù) 1:startActivityForResult 方法中的 requestCode參數(shù) 2:setResult 方法中的 resultCode參數(shù) 3:Intent 數(shù)據(jù)
3、setResult(int resultCode, Intent data),被打開的 Activity 如果想返回數(shù)據(jù),則在銷毀前一定要調(diào)用該方法,通過該方法設(shè)置數(shù)據(jù)。參數(shù) 1:結(jié)果碼,該結(jié)果碼可以用于區(qū)分是哪個 Activity 給我們返回的數(shù)據(jù)參數(shù) 2:設(shè)置的數(shù)據(jù)
MainActivity中
Intent intent = new Intent(MainActivity.this, NextActivity.class);startActivityForResult(intent, 0);
NextActivity中
Intent intent = new Intent();intent.setClass(NextActivity.this, MainActivity.class);intent.putExtra('mes', '我是Next中來的');setResult(0, intent);this.finish();
MainActivity中
@Override protected void onActivityResult(int requestCode, int resultCode, Intent data) {super.onActivityResult(requestCode, resultCode, data);if (data == null){ return;}if (0 == requestCode) { if (0 == resultCode) {String s = data.getStringExtra('mes');mTv.setText(s); }} }
到此這篇關(guān)于Android startActivityForResult的基本用法詳解的文章就介紹到這了,更多相關(guān)Android startActivityForResult內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
