[英]Android StartActivityForResult and Finish (with video)
我有一個MainActivity類,帶有“Add Item”按鈕和listview以及帶有文本框和“保存”按鈕的AddItemActivity類。 用戶應單擊“添加項目”,轉到AddItemActivity屏幕,輸入項目,單擊“保存”,然后返回更新的MainActivity屏幕。
(順便說一句,我使用的是MonoDroid,但我認為這不是MonoDroid特有的問題)。
我的“添加項目”點擊事件(在主要活動上):
private void addItemButton_Click(object sender, EventArgs e)
{
var intent = new Intent();
intent.SetClassName(this, "monoApp.AddItemClassName");
StartActivityForResult(intent, 0);
}
我的“保存”點擊事件(添加項目活動):
private void saveButton_Click(object sender, EventArgs e)
{
var itemname = FindViewById<EditText>(Resource.id.itemName);
_repo.SaveItem(new Item() {Name = itemname.Text.ToString()});
Toast.MakeText(this, "You saved: " + itemname.Text, ToastLength.Short).Show();
var intent = new Intent();
SetResult(Result.Ok, intent);
Finish();
}
然后回到主要活動:
protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
{
base.OnActivityResult(requestCode, resultCode, data);
RefreshTheList();
}
這在第一次就像一個魅力。 屏幕滑動到“添加項目”,然后在完成后滑回主頁面。 第二次 ,它滑過,然后它滑回自己 ,如果這是有道理的。 然后,如果我再次點擊保存,它會恢復正常工作。
如果視頻會有所幫助,我已經發布了一篇關於TwitVid的視頻: http ://www.twitvid.com/W7XZC
基本上,我不希望它“滑回自己”,所以我做錯了什么?
我的代碼中沒有看到任何錯誤...我在這里猜測。
您的第二個活動可能會在第二次嘗試中以某種方式從您的剩余部分代碼中多次啟動。
在addItemButton_Click中打印一個日志並檢查。 如果日志被打印兩次,那么它以某種方式調用該方法2次。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.