Ir ao conteúdo
  • Cadastre-se

Reiniciar actity através de outra classe


Posts recomendados

Eu estou fazendo um app que mostra em uma listView os contatos contidos no banco de dados, e em todos os elementos desta listView (que são os contatos) existe um botão "Excluir" que apaga o contato do banco de dados, enfim, o app consegue apagar o contato com sucesso, porém eu gostaria que assim que ele apagasse o contato a Activity ou o listView fosse reiniciado para recarregar todos os contatos existentes novamente, assim aquele contato que foi apagado não ficaria aparecendo para o usuario. Eu já tentei chamar minha função "construtor" que constrói o listView, mas quando eu clico no botão "excluir" aparece "O aplicativo Contatos parou." e volta para a Actitivy principal. Como eu resolvo esse problema? Deixarei as minhas duas classes a seguir:

 

Classe da Activity:

package danielhermenegildogimenez.contatos;

import android.app.Activity;
import android.content.ComponentName;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.EditText;
import android.widget.ListView;

import com.google.gson.Gson;
import com.google.gson.reflect.TypeToken;

import java.util.ArrayList;
import java.util.concurrent.ExecutionException;

import danielhermenegildogimenez.contatos.ListView.ContatosAdapter;
import danielhermenegildogimenez.contatos.WebService.funcoesAsyncTask.Buscar;
import danielhermenegildogimenez.contatos.modelo.Contato;

public class ListaActivity extends AppCompatActivity {
    ArrayList<Contato> contatos = new ArrayList<Contato>();
    String[] values;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_lista);

        values = getIntent().getStringArrayExtra("values");
        construtor();
    }

    public void construtor(){

        String json = "";
        Intent intent = getIntent();
        try {
            json = new Buscar().execute(values[0], values[1], values[2], values[3]).get();
        } catch (InterruptedException e) {
            e.printStackTrace();
        } catch (ExecutionException e) {
            e.printStackTrace();
        }
        Gson gson = new Gson();
        contatos = gson.fromJson(json, new TypeToken<ArrayList<Contato>>(){}.getType());
        ArrayAdapter adapter = new ContatosAdapter(this, contatos);
        ListView lista = (ListView) findViewById(R.id.listView);
        lista.setAdapter(adapter);
    }
}

 

Classe que monta o listView:

package danielhermenegildogimenez.contatos.ListView;

import android.content.Context;
import android.content.Intent;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.TextView;
import android.widget.Toast;

import java.util.ArrayList;
import java.util.concurrent.ExecutionException;

import danielhermenegildogimenez.contatos.ListaActivity;
import danielhermenegildogimenez.contatos.R;
import danielhermenegildogimenez.contatos.WebService.acessoWS;
import danielhermenegildogimenez.contatos.WebService.funcoesAsyncTask.Excluir;
import danielhermenegildogimenez.contatos.modelo.Contato;

import static android.support.v4.app.ActivityCompat.startActivity;

/**
 * Created by Daniel on 03/08/2017.
 */
public class ContatosAdapter extends ArrayAdapter<Contato> {

    private Context context;
    private ArrayList<Contato> contatos;
    private Intent intent;

    public ContatosAdapter(Context context, ArrayList<Contato> contatos){
        super(context, R.layout.contato, contatos);
        this.context = context;
        this.contatos = contatos;
    }

    public View getView(final int position, final View convertView, final ViewGroup parent){

        final int index = position;
        LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        final View rowView = inflater.inflate(R.layout.contato, parent, false);

        TextView nome = (TextView) rowView.findViewById(R.id.nome);
        TextView cel = (TextView) rowView.findViewById(R.id.cel);
        TextView tel = (TextView) rowView.findViewById(R.id.tel);
        TextView email = (TextView) rowView.findViewById(R.id.email);
        Button editar = (Button) rowView.findViewById(R.id.editar);
        Button excluir = (Button) rowView.findViewById(R.id.excluir);

        nome.setText(contatos.get(position).getNome());
        cel.setText(contatos.get(position).getCel());
        tel.setText(contatos.get(position).getTel());
        email.setText(contatos.get(position).getEmail());

        editar.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

            }
        });

        excluir.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                int aux = contatos.get(index).getId();
                String id = aux + "";
                boolean resultado = false;
                try {
                    resultado = new Excluir().execute(id).get();
                } catch (InterruptedException e) {
                    e.printStackTrace();
                } catch (ExecutionException e) {
                    e.printStackTrace();
                }
                if(resultado == true) {
  					//AQUI FICA O QUE O APP VAI FAZER SE O CONTATO FOR EXCLUIDO COM SUCESSO
                    ListaActivity lista = new ListaActivity();
                    lista.construtor();
                }
                else Toast.makeText(context, "Não foi possivel excluir o contato", Toast.LENGTH_SHORT).show();
            }
        });
        return rowView;
    }

}

 

Link para o comentário
Compartilhar em outros sites

Visitante
Este tópico está impedido de receber novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...