4

[アイテムの追加]ボタンとリストビューを備えたMainActivityクラスと、テキストボックスと[保存]ボタンを備えたPASSWORDActivityクラスがあります。ユーザーは「アイテムの追加」をクリックし、PASSWORDActivity画面に移動してアイテムを入力し、「保存」をクリックしてから、更新された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();
    }

これは、初めて、魅力のように機能します。画面が「アイテムの追加」にスライドし、完了するとメインに戻ります。2回目はスライドしますが、意味がある場合は、スライドして元に戻ります。そして、もう一度保存を押すと、正常に動作するようになります。

ビデオが役立つ場合は、私が見ているもののクリップをTwitVidに投稿しました:http ://www.twitvid.com/W7XZC

基本的に、私はそれが「それ自体に戻る」ことを望んでいないので、私は何を間違っているのですか?

4

1 に答える 1

5

ここのコードに問題はありません...ここで推測しています。

2番目のアクティビティは、コードの残りの部分から何らかの形で2回目の試行で複数回起動される可能性があります。

addItemButton_Click内にログを印刷して確認します。ログが2回印刷されている場合は、なんらかの方法でメソッドを2回呼び出しています。

于 2010-10-31T17:42:33.570 に答える