Pergunta

Eu tenho uma aula de MainActivity com um botão "Adicionar item" e um ListView e uma classe AddItemActivity com uma caixa de texto e um botão "salvar". O usuário deve clicar no "Adicionar item", ir para a tela AddItemActivity, inserir um item, clicar em 'Salvar' e voltar à tela MainActivity atualizada.

(BTW, estou usando o Monodroid, mas não acho que seja necessário um problema específico para monodroid).

Meu evento de clique "Adicionar item" (na atividade principal):

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

Meu evento "Salvar" Click (na adição de atividade do item):

    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 depois de volta à atividade principal:

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

        RefreshTheList();
    }

Isso funciona como um encanto, pela primeira vez. A tela desliza para 'Adicionar item' e depois desliza de volta para o principal quando estiver pronto. o segundo tempo, desliza, mas depois desliza de volta para em si, Se isso faz algum sentido. E então se eu acertar salvar novamente, ele volta a funcionar bem.

Se o vídeo ajudasse, publiquei um clipe do que estou vendo no Twitvid: http://www.twitvid.com/w7xzc

Basicamente, eu não quero que "deslize para si mesmo", então o que estou fazendo de errado?

Foi útil?

Solução

Não vejo nada de errado no seu código aqui ... estou adivinhando aqui.

Sua segunda atividade pode estar sendo lançada várias vezes na segunda tentativa de alguma forma a partir das partes restantes do código.

Imprima um log dentro do seu additembutton_Click e verifique. Se o log estiver sendo impresso duas vezes, ele está chamando o método 2 vezes de alguma forma.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top