從一個Activity返回上一個Activity


從一個Activity返回上一個Activity

要求:保留上一個Activity的數據

方法

  第一步:從Activity1轉向Activity2時,用startActivityForResult而不是startActivity;

  example:

/*Activity1中*/

Intent intent = new Intent(this,Activity2.class);
intent.putExtra("path", path);
startActivityForResult(intent,3);

  第二步:需要Activity1時,將調用Activity2的finish()方法結束Activity2,同時傳遞的數據與result_code均可通過setResult設置。注:setResult實在finish()時調用,故setResult必須放在finish()之前。

  example:

/*Activity2中*/


Intent intent = new Intent();
//將想要傳遞的數據用putExtra封裝在intent中
intent.putExtra(key,value)
setResult(RESULT_CANCELED,intent);
finish();

注意:Activity2中切不可用startActivity轉到Activity1。

Intent intent = new Intent(Activity1.class);
//將想要傳遞的數據用putExtra封裝在intent中
intent.putExtra(key,value)
startActivity(intent);

原因:利用上述startActivity轉到Activity1時會重新建立Activity1界面(對象),即是一個新的Activity1,之前Activity1的數據將全部消失。

  第三步:Activity1接受Activity2的數據

   方法:利用onActivityResult中的參數data,data就是上一個Activity返回的Intent數據(即第二步中,setResult中的intent)。不要再用getIntent()函數,那樣是獲取不到傳回的intent的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM