[英]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.