Xamarin で開発を始めたばかりで、2 つのアクティビティ間で「前方」と「後方」の両方で int[] を渡すのに問題があります。したがって、アクティビティ 1 がアクティビティ 2 を起動すると、int[] がアクティビティ 2 に渡され、アクティビティ 2 で「onBackPressed」が呼び出されると、int[] がアクティビティ 1 に戻されます。
4 か所にコードがあります。
アクティビティ 1: onCreate() の内部
sharedIntent = new Intent(this,typeof(MyListViewActivity));
sharedIntent.PutExtra("SELECTED_LISTVIEW_ITEMS", selectedItems);
btnLaunchListViewActivity.Click += delegate { StartActivity(sharedIntent); };
アクティビティ 2 : onCreate() の内部
var previouslySelectedItems = Intent.GetIntArrayExtra("SELECTED_LISTVIEW_ITEMS");
if(previouslySelectedItems != null)
{
foreach(int position in previouslySelectedItems )
ListView.SetItemChecked(position, true);
}
アクティビティ 2 : onBackPressed() の内部
Intent.PutExtra("SELECTED_LISTVIEW_ITEMS", checkedItemPositions);
アクティビティ 1: onRestart() の内部
selectedItems = sharedIntent.GetIntArrayExtra("SELECTED_LISTVIEW_ITEMS");
現在、私の int[] はアクティビティ 2 に「進む」ようですが、アクティビティ 1 に「戻る」ことはありません。アクティビティ 2 の Intent.GetIntArrayExtra は、アクティビティ 1 の sharedIntent と同じインテントを呼び出していますか?