程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> 更多編程語言 >> 編程綜合問答 >> android-Android:捕獲一個activity的返回

android-Android:捕獲一個activity的返回

編輯:編程綜合問答
Android:捕獲一個activity的返回

關於啟動一個新的activity我遇到了一個問題。主要的問題就是,在一個視圖上我有三個tab
A) 包含gMap activity
B) camera activity
C)一些隨機的文本字段
要求就是這個應用程序要在肖像模式下運行。
除了Camera Preview Surface (B),所有的三個tab都正常。它旋轉了90度。唯一的方法是把應用程序設置成橫屏顯示模式,移除所有的標簽。但是這樣是非常不切實際的。
我的解決方案就是:代替
我的camera activity和一個空的常規activity,除了

Intent i = new Intent(this,CameraActivity.class);
    startActivity(i);

這將啟動我的CameraActivity。而且很正常。我必須做一個包含3個圖片的線性布局使它看起來像真正的tab,所以我可以試著模擬操作系統的tab,旋轉屏幕成橫屏然後保持視覺效果作為圖像。用戶可以點擊其中的一個圖像(按鈕)來顯示下一個tab。這是我的想法。它應該在一個tab中退出我的‘camera activity’,返回到‘blank activity’,它應該解釋為從我的image中單擊desiered tab。

最主要的就是,當它返回時,它在一個tab下返回一個空白(黑色)頁面(因為它是空的)。我怎麼能夠捕獲調用activity的返回這個頁面的返回事件,然後看看做了什麼動作?
當點擊退出camera activity時,我可以設置一個點擊的監聽事件以便可以對假tab(圖像)被點擊做出會用。一旦退出,tab應該更新以便你來返回。有什麼建議麼?
謝謝。

最佳回答:


我只專注於回答怎麼解決你的這個很緊急的問題,所以答案也你想要的。
捕獲在另外一個activity中的一個activity的動作需要三個步驟。
加載第二個activity(你的‘camera activity’)作為一個子activity,用startActivityForResult而不是startActivity。

Intent i = new Intent(this,CameraActivity.class);    
startActivityForResult(i, STATIC_INTEGER_VALUE);

在這個子activity(camera activity)中,當你返回到父app時用額外的bundle,你需要創建一個新的包含索引tab的intent來顯示,而不僅僅是當一個用戶點擊不同的tab圖片的時候關閉activity。在關閉camera activity結束之前傳遞它到父調用setResult。

resultIntent = new Intent(null);
resultIntent.putExtra(PUBLIC_STATIC_STRING_IDENTIFIER, tabIndexValue);
setResult(Activity.RESULT_OK, resultIntent);
finish();

最後一步是在調用activity的時候,重寫onActivityResult來監聽camera activity的回調。從返回的Intent獲得額外的來決定你想要顯示的索引tab

@Override 
public void onActivityResult(int requestCode, int resultCode, Intent data) {     
  super.onActivityResult(requestCode, resultCode, data); 
  switch(requestCode) { 
    case (STATIC_INTEGER_VALUE) : { 
      if (resultCode == Activity.RESULT_OK) { 
      int tabIndex = data.getIntExtra(PUBLIC_STATIC_STRING_IDENTIFIER);
      // TODO Switch tabs using the index.
      } 
      break; 
    } 
  } 
}
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved