2013-02-09 29 views
0

在MonoDroid的做一些操作,我用意圖。例如,在一個應用程序的兩個「保存搜索」和「搜索」頁面我有一個活動,當我想叫這個活動我用這樣的代碼:transfering數據(有些東西像MonoTouch的MonoDroid的意圖)

 var filename = SearchFileList [args.Position]; 
      Intent intent = new Intent (this, typeof(SearchAroundYouActivity)); 
      intent.PutExtra (AppConstants.SearchAction, AppConstants.SavedSearch); 
      intent.PutExtra (AppConstants.SearchOption, StorageClass .SearchPath +"/" + filename + "/State.rsf"); 
      intent .PutExtra (AppConstants .SavedSearchName , StorageClass .SearchPath +"/" + filename); 
      StartActivity (intent); 

,然後在活動上創建使用該代碼:

action = Intent.GetStringExtra (AppConstants.SearchAction); 
      if (action == AppConstants.SavedSearch) { 
       NormalFilter = ((RPLApp)Application).typeOfShow.Content .filter .ToString(); 
       ((RPLApp)Application).typeOfShow.Load (Intent.GetStringExtra (AppConstants.SearchOption)); 
       SaveName = Intent .GetStringExtra (AppConstants .SavedSearchName); 
      } 

通過這種方法,我可以檢測到加載保存的數據或運行新的搜索。

問題是這樣的:我們如何在monotouch中做這樣的事情?

也許這是可能的,我們定義屏幕類中的一些靜態變量,然後檢查他們的價值這一建議,但是否這樣的解決方案是一個推薦,好到這樣做的最好方法是什麼?

回答

0

在iOS上,你應該能夠傳遞這些價值,你通常會在C#中做2班之間。 Android有點奇怪,需要將內容序列化並通過Intent。如果你想獲得更多的「跨平臺-Y」,你可以使用一個信使實現兩個平臺

var myController = new MyController(); 
myController.SetSomeField = true; //Or pass anything you want in via properties or methods 
PresentViewController(myController, true, null); 

因此,舉例來說,你可以做一個點擊事件這樣的事情。我有一個here,我認爲MvvmCross正在開發一個 - 不知道它是否在那裏。