我刚刚开始在 Xamarin 中进行开发,并且在两个 Activites 之间“向前”和“向后”传递 int[] 时遇到了麻烦。因此,当 Activity 1 启动 Activity 2 时,它应该将 int[] 传递给 Activity 2,当在 Activity 2 上调用“onBackPressed”时,应该将 int[] 传递回 Activity 1。
我有四个地方的代码。
活动一:onCreate()里面
sharedIntent = new Intent(this,typeof(MyListViewActivity));
sharedIntent.PutExtra("SELECTED_LISTVIEW_ITEMS", selectedItems);
btnLaunchListViewActivity.Click += delegate { StartActivity(sharedIntent); };
活动二:onCreate() 内部
var previouslySelectedItems = Intent.GetIntArrayExtra("SELECTED_LISTVIEW_ITEMS");
if(previouslySelectedItems != null)
{
foreach(int position in previouslySelectedItems )
ListView.SetItemChecked(position, true);
}
活动二:onBackPressed() 内部
Intent.PutExtra("SELECTED_LISTVIEW_ITEMS", checkedItemPositions);
活动一:onRestart()里面
selectedItems = sharedIntent.GetIntArrayExtra("SELECTED_LISTVIEW_ITEMS");
现在,看来我的 int[] 正在“前进”到活动二,但从不“返回”到活动一任何帮助将不胜感激!活动二中的 Intent.GetIntArrayExtra 是否与活动一中的 sharedIntent 调用相同的意图?