Domanda

Ho una classe MainActivity con un pulsante "Aggiungi elemento" e una visualizzazione elenco e una classe AddItemActivity con una casella di testo e un pulsante "Salva".L'utente deve fare clic su "Aggiungi elemento", andare alla schermata AddItemActivity, inserire un elemento, fare clic su "Salva" e quindi tornare alla schermata MainActivity aggiornata.

(A proposito, sto usando MonoDroid, ma non penso che sia necessario un problema specifico di MonoDroid).

Il mio evento di clic "Aggiungi articolo" (sull'attività principale):

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

Il mio evento clic "Salva" (nell'attività di aggiunta elemento):

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

E poi torna all'attività principale:

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

        RefreshTheList();
    }

Funziona come un incantesimo, la prima volta.Lo schermo scorre su "aggiungi elemento", quindi torna alla schermata principale una volta terminato.IL seconda volta, scorre, ma poi ritorna a si, se ha senso.E poi se premo salva Ancora, torna a funzionare bene.

Se il video può essere d'aiuto, ho pubblicato un clip di ciò che vedo su TwitVid: http://www.twitvid.com/W7XZC

Fondamentalmente, non voglio che "ritorni su se stesso", quindi cosa sto facendo di sbagliato?

È stato utile?

Soluzione

Non vedo nulla di sbagliato nel tuo codice qui... Sto facendo un'ipotesi qui.

La tua seconda attività potrebbe essere avviata più volte nel secondo tentativo in qualche modo dalle parti rimanenti del codice.

Stampa un registro all'interno del tuo addItemButton_Click e controlla.Se il registro viene stampato due volte, in qualche modo chiama il metodo 2 volte.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top