4

我有一个带有“添加项目”按钮和一个列表视图的 MainActivity 类和一个带有文本框和一个“保存”按钮的 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();
    }

这就像一个魅力,第一次。屏幕滑到“添加项目”,完成后滑回主屏幕。第二,它滑过,然后又滑回自己,如果这有意义的话。然后,如果我再次点击 save ,它会恢复正常工作。

如果视频有帮助,我已经向 TwitVid 发布了我所看到的片段:http: //www.twitvid.com/W7XZC

基本上,我不希望它“滑回自己”,那我做错了什么?

4

1 回答 1

5

我在这里的代码中没有看到任何错误......我在这里猜测。

您的 Second 活动可能会在第二次尝试中以某种方式从代码的剩余部分启动多次。

在 addItemButton_Click 中打印日志并检查。如果日志被打印两次,那么它会以某种方式调用该方法 2 次。

于 2010-10-31T17:42:33.570 回答