Android startActivityForResult的基本用法詳解
知識準備:
1、startActivityForResult(Intent intent, int requestCode):啟動 Activity,同時等待該 Activity 返回數(shù)據(jù)。只有該 Activity 銷毀時數(shù)據(jù)才會被返回。
參數(shù) 1:意圖,封裝要啟動的 Activity,當然也可以攜帶數(shù)據(jù)
參數(shù) 2:請求碼,如果是大于 0 的整數(shù),那么該請求碼會在 onActivityResult 中的 requestCode中出現(xiàn),如果小于等于 0,則不會被返回。
2、onActivityResult(int requestCode, int resultCode, Intent data):當打開的 Activity 銷毀的時候該方法會被調(diào)用,從該方法中獲取銷毀的 Activity 設置的數(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ù)據(jù)。
參數(shù) 1:結果碼,該結果碼可以用于區(qū)分是哪個 Activity 給我們返回的數(shù)據(jù)
參數(shù) 2:設置的數(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); } } }
到此這篇關于Android startActivityForResult的基本用法詳解的文章就介紹到這了,更多相關Android startActivityForResult內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
Android Studio 4.0新特性及升級異常問題的解決方案
這篇文章主要介紹了Android Studio 4.0新特性及升級異常的相關問題,本文給大家分享解決方案,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下2020-06-06Android Doze模式下Alarm定時任務實現(xiàn)流程詳解
這篇文章主要介紹了Android Doze模式下Alarm定時任務實現(xiàn),Android的定時任務有兩種,一種是JavaAPI提供的Timer類,另一種就是使用Android的Alarm機制2022-11-11