我有一个带有TextView(“@ + id/lblAccountHead”)的片段“AddNewIncomeFragment”。点击textview后,它开始一个新的活动“AccountHeadListActivit”,它显示了一个现有账户头的列表。在从“AccountHeadListActivity”中选择账户头部时,我想用选定的账户名称更新第一个活动的“lblAccountHead”,其他值需要保持不变。Xamarin Android - 从另一个活动更新一个活动的UI控件
早些时候我使用“消息中心”为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();
}
在结束活动后,我想更新以前活动的textview和选定的帐户头名称/ ID。请分享我们必须在xamarin andriod中执行此操作的选项,并使用StartActivityForResult,Local Notifications或任何最佳方法。
我已经实现了上述解决方案,它工作正常。但问题是 - 第二个活动“AccountHeadList”包含一个添加新帐户链接,它启动一个新的活动“AddNewAccount” - 现在如果用户创建一个新帐户并保存它,那么此活动需要关闭,第一个活动需要新更新创建帐户名称。所以基本上“StartActivityForResult”在涉及三项活动并且需要从第三项活动更新第一项活动时失败 - 请建议。
感谢,
@保罗
而不是使用finish()关闭第三个活动,您可以启动第一个活动并通过一个包中的意图传递所需的数据,然后在oncreate()方法中可以从包中获取数据如果存在。 – Ogbe