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

标签 c# android-activity xamarin.android android-notifications

我有一个带有 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);
        }

帐户头 Activity 的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();
        }

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


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


谢谢

@保罗

最佳答案

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

然后在您的第二个 Activity 中,在完成 Activity finish() 之前调用 setResult(result) 方法来设置结果,然后在您的原始 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/

相关文章:

c# - 类型系统异常 : Enumerable. Cast<int>()

c# - 每次我打开我的 VS 解决方案时,我都会得到 “Projects have recently been added to this solution. Do you want to get them from source control?”

android - startActivity 每次都创建新的 Activity 实例

java - 如何将下载的图像从一个 Activity 传递到下一个 Activity ?

c# - 将位图保存到文件 - Xamarin、Monodroid

c# - 从另一个 ViewModel Xamarin.Forms 更新 ViewModel

c# - c# 中是否存在与 int 和 string 成员变量等效的 c++ union ?

c# - 如何使用XmlReader以int形式获取属性值?

android - 根据条件启动 Activity 会在屏幕上产生闪烁

android - 将可绘制对象添加到 ImageView