我有一个简单的应用程序需要执行以下操作:
我发现的问题是,一旦我使用StartActivity(有意图)或SetContentView(Resource.Layout.Main),我的数据就消失了。我将收集到的信息放在一个全局变量中,但当我回到原始视图时,它会被重新创建。
如何将此数据传回原始视图以便我可以更新某些UI控件?
答案 0 :(得分:2)
http://developer.android.com/training/basics/intents/result.html
您是否尝试过startActivityForResult。我猜这就是你要做的事情。
答案 1 :(得分:0)
这样的事情应该有效:
var activity2 = new Intent (this, typeof(Activity2));
activity2.PutExtra ("MyData", "Data from Activity1");
StartActivity (activity2);
有关此方法的更多信息: http://developer.xamarin.com/recipes/android/fundamentals/activity/pass_data_between_activity/
答案 2 :(得分:0)
您必须使用intent调用startActivityForResult并实现onActivityResult以捕获来自Class2的信息。
活动类别1:
startActivityForResult(new Intent(this, Class2.class), 1);
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK) {
// do something
}
super.onActivityResult(requestCode, resultCode, data);
}
要将信息发送到Class1,您必须使用捆绑包中的信息调用setResult并调用finish()。
活动类2:
Bundle bundle = new Bundle();
bundle.putString("---your info---");
setResult(RESULT_OK, new Intent().putExtras(bundle));
finish();
阅读"开始活动和获得结果"来自http://developer.android.com/reference/android/app/Activity.html