Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android在ActivityGroup裡面使用startActivityForResult

Android在ActivityGroup裡面使用startActivityForResult

編輯:關於Android編程

假如現在有個ActivityGroup A,裡面有兩個子Activity B和C,在C裡面跳轉到另一個Activity D,然後在D裡面執行了某些操作,finish了再返回D的時候,刷新D界面。該如何實現呢?
如果在C裡面,c.startActivityForResult(D,0),然後在D finish()之前setResult(1),那麼在C的onActivityResult裡面是接收不到從D返回過來的返回碼1的,也就無法刷新界面了。

解決辦法是:
   C啟動D: 
[java]
Intent intent = new Intent(C.this,D.class); 
        getParent().startActivityForResult(intent,0); 

然後在A中重寫onActivityResult:
[java] 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
               // TODO Auto-generated method stub 
               super.onActivityResult(requestCode, resultCode, data); 
               if(requestCode==0){ 
                       C activity =(C)getLocalActivityManager().getCurrentActivity(); 
           activity.handleActivityResult(requestCode, resultCode, data);//把收到的消息發送給發起請求的Activity C 
               } 
       } 

最後在C中添加handleActivityResult方法
[java]
public void handleActivityResult(int requestCode, int resultCode, Intent data){ 
                if(resultCode == 1){//獲取返回碼,刷新界面 
                                Log.i(TAG, "返回碼:"+resultCode); 
                } 
        } 

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved