Frage

Ich habe eine MainActivity Klasse mit einem „Element hinzufügen“ klicken und eine Listenansicht und einer AddItemActivity Klasse mit einem Textfeld und eine Schaltfläche „Speichern“. Der Benutzer sollte auf „Add Item“ klicken Sie auf der AddItemActivity Bildschirm, ein Element einzugeben, klicken Sie auf ‚Speichern‘ und dann auf die aktualisierte MainActivity Bildschirm zurück.

(BTW, ich bin mit MonoDroid, aber ich glaube nicht, das ist notwendig, ein MonoDroid spezifisches Problem).

Mein "Add" Click-Ereignis (auf Haupttätigkeit):

    private void addItemButton_Click(object sender, EventArgs e)
    {
        var intent = new Intent();
        intent.SetClassName(this, "monoApp.AddItemClassName");
        StartActivityForResult(intent, 0);
    }

Mein "Save" Click-Ereignis (auf dem Merk Aktivität):

    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();
    }

Und dann zurück in Haupttätigkeit:

    protected override void OnActivityResult(int requestCode, Result resultCode, Intent data)
    {
        base.OnActivityResult(requestCode, resultCode, data);

        RefreshTheList();
    }

Das funktioniert wie ein Zauber, auf das erste Mal. Der Bildschirm gleitet über zu ‚Element hinzufügen‘ und dann zurück Folien Haupt, wenn es fertig ist. Der zweites Mal , es gleitet vorbei, aber dann gleitet er zurück selbst , wenn der Sinn macht. Und dann, wenn ich getroffen speichern wieder , geht es zurück in Ordnung zu arbeiten.

Wenn das Video würde helfen, ich habe einen Clip geschrieben, was ich TwitVid bin zu sehen: http: // www.twitvid.com/W7XZC

Im Grunde genommen, ich will es nicht zu „gleiten zurück zu sich selbst“ überhaupt, so was mache ich falsch?

War es hilfreich?

Lösung

Ich habe nichts falsch im Code sehen hier ... Ich nehme eine Vermutung hier.

Ihre zweite Aktivität könnte mehrere Male im zweiten Versuch irgendwie aus dem verbleibenden Teil des Codes gestartet zu werden.

Drucken ein Protokoll in Ihrem addItemButton_Click und überprüfen. Wenn das Protokoll zweimal gedruckt wird immer dann wird die Methode 2 mal irgendwie aufrufen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top