Pregunta

Tengo una clase MainActivity con un botón "Añadir elemento" y una vista de lista y una clase AddItemActivity con un cuadro de texto y un botón "Guardar". El usuario debe hacer clic en "Agregar elemento", vaya a la pantalla AddItemActivity, introducir un elemento, haga clic en 'Guardar' y luego volver a la pantalla MainActivity actualizada.

(Por cierto, estoy usando MonoDroid, pero no creo que esto es necesario un MonoDroid problema específico).

Mi "Añadir elemento" evento de clic (en actividad):

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

Mi "Guardar" evento click (sobre la actividad de Agregación de Elementos):

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

Y luego de vuelta en la actividad principal:

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

        RefreshTheList();
    }

Esto funciona como un encanto, en el primer tiempo. Las diapositivas de pantalla más a 'elemento add', y luego se desliza hacia atrás a principal cuando se hace. El segunda vez , que se desliza sobre, pero luego se desliza hacia atrás a , si eso tiene algún sentido. Y entonces si golpeo Guardar más , que se remonta a trabajar muy bien.

Si el vídeo ayudaría, he publicado un clip de lo que estoy viendo a TwitVid: http: // www.twitvid.com/W7XZC

Básicamente, yo no quiero que "atrás de la corredera a sí mismo" nunca, así que lo que estoy haciendo mal?

¿Fue útil?

Solución

No veo nada malo en su código aquí ... estoy tomando una conjetura aquí.

Su segunda actividad podría estar recibiendo lanzó varias veces en el segundo intento de alguna manera de las porciones restantes del código.

imprimir un registro dentro de su addItemButton_Click y verificación. Si el registro se está impreso dos veces y luego se llama el método de 2 veces de alguna manera.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top