我有一个带有TextView的片段“AddNewIncomeFragment”(“@ + id / lblAccountHead”)。点击textview后,它会启动一个新活动“AccountHeadListActivit”,显示现有账户头的列表。在从“AccountHeadListActivity”中选择帐户头时,我想更新具有所选帐户名的第一个活动的“lblAccountHead”,其他值必须完整。
之前我使用“消息中心”为xamarin表单做了。现在我试图在xamarin native(android)中做同样的事情。
*****应用第一个解决方案更新****
点击AddNewIncomeFragment中启动帐户头活动的事件:
public void onAccounyHeadClick(object sender, EventArgs e)
{
var intend = new Intent(this.Activity, typeof(AccountHeadListActivity));
//this.StartActivity(intend);
this.StartActivityForResult(intend, 1000);
}
帐户主管活动的ListView选择事件
void OnSelection (object sender, SelectedItemChangedEventArgs e)
{
var result = new Intent();
result.PutExtra("name", "Salary Account");
result.PutExtra("id", 2);
SetResult(Result.Ok, result);
Finish();
}
在关闭此活动时,我想要使用所选的帐户头名/ ID更新以前活动的文本视图。请分享我们在xamarin andriod中执行此操作的选项,应使用StartActivityForResult,Local Notifications或任何最佳方法。
我已经实施了上述解决方案并且工作正常。但问题是 - 第二个活动“AccountHeadList”包含一个添加新帐户链接,它启动一个新活动“AddNewAccount” - 现在如果用户创建一个新帐户并保存它,那么这个活动需要关闭,第一个活动需要新更新创建帐户名称。所以基本上“StartActivityForResult”在涉及三项活动并且需要更新第三项活动的第一项活动时失败 - 请建议。
谢谢,
@保罗
答案 0 :(得分:4)
要收到结果,请致电
startActivityForResult()
代替startActivity()
然后在第二个活动中,调用setResult(result)
方法设置结果,然后在原始活动中完成活动finish()
后,您可以覆盖方法
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// set the text view with the data from the result
}