gpt4 book ai didi

c# - Xamarin Android - 从另一个 Activity 更新一个 Activity 的 UI 控件

转载 作者:行者123 更新时间:2023-11-30 20:29:07 26 4
gpt4 key购买 nike

我有一个带有 TextView("@+id/lblAccountHead") 的片段“AddNewIncomeFragment”。单击 TextView 时,它会启动一个新 Activity “AccountHeadListActivit”,其中显示现有客户负责人的列表。从“AccountHeadListActivity”中选择帐户负责人时,我想使用所选帐户名称更新第一个 Activity 的“lblAccountHead”,其他值需要保持不变。

早些时候我使用 xamarin 表单的“消息中心”来完成它。现在我尝试在 xamarin native(android) 中做同样的事情。

*****已应用第一个解决方案更新****

AddNewIncomeFragment 中的点击事件启动账户头部 Activity :

  public void onAccounyHeadClick(object sender, EventArgs e)
{
var intend = new Intent(this.Activity, typeof(AccountHeadListActivity));
//this.StartActivity(intend);
this.StartActivityForResult(intend, 1000);
}

Account head activity的ListView Selection事件

void OnSelection (object sender, SelectedItemChangedEventArgs e)
{

var result = new Intent();
result.PutExtra("name", "Salary Account");
result.PutExtra("id", 2);
SetResult(Result.Ok, result);
Finish();
}

关闭此 Activity 时,我想使用选定的帐户负责人名称/ID 更新先前 Activity 的 TextView 。请分享我们必须在 xamarin andriod 中执行此操作的选项,应该使用 StartActivityForResult、本地通知或任何最佳方法。


我已经实现了上述解决方案并且工作正常。但问题是-第二个 Activity “AccountHeadList”包含一个添加新帐户链接,该链接启动一个新 Activity “AddNewAccount”-现在如果用户创建一个新帐户并保存它,则需要关闭此 Activity 并且需要更新第一个 Activity 创建的帐户名称。所以基本上“StartActivityForResult”在涉及三个 Activity 时失败并且需要从第三个 Activity 更新第一个 Activity - 请提出建议。


谢谢,

@保罗

最佳答案

要接收结果,请调用startActivityForResult() 而不是 startActivity()

然后在您的第二个 Activity 中,调用 setResult(result) 方法在您完成 Activity 之前设置结果 finish() 之后在您的原始 Activity 中您可以覆盖方法

  @Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// set the text view with the data from the result
}

关于c# - Xamarin Android - 从另一个 Activity 更新一个 Activity 的 UI 控件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46577529/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com