簡體   English   中英

Xamarin Android-從另一個活動更新一個活動的UI控件

[英]Xamarin Android - Update UI control of one activity from another activity

我有一個帶有TextView(“ @ + id / lblAccountHead”)的片段“ AddNewIncomeFragment”。 在單擊textview時,它將啟動一個新活動“ AccountHeadListActivit”,其中顯示了現有帳戶頭的列表。 從“ AccountHeadListActivity”中選擇帳戶頭后,我想用所選帳戶名更新第一個活動的“ lblAccountHead”,其他值必須保持不變。

早些時候我使用xamarin形式的“消息中心”來做到這一點。 現在我試圖在xamarin native(android)中做同樣的事情。

*****采用第一解決方案進行更新****

AddNewIncomeFragment中的Click事件啟動帳戶頭活動:

  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更新上一個活動的textview。 請分享我們在xamarin andriod中必須執行的選項,應使用StartActivityForResult,Local Notifications或任何最佳方法。


我已經實現了上述解決方案,並且工作正常。 但是問題是-第二個活動“ AccountHeadList”包含一個添加新帳戶的鏈接,該鏈接將啟動一個新活動“ AddNewAccount”-現在,如果用戶創建一個新帳戶並保存,則此活動需要關閉,而第一個活動需要進行新的更新創建的帳戶名。 因此,基本上,“ StartActivityForResult”在涉及三個活動並需要從第三活動更新第一活動時失敗-請提出建議。


謝謝,

@保羅

要接收結果,請調用startActivityForResult()而不是startActivity()

然后在第二個活動中,在完成活動finish()之前,調用setResult(result)方法設置結果,然后在原始活動中可以覆蓋該方法

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM