ListView com erro ao carregar dados do Banco de dados Mysql

  • Respostas:0
  • AbertoNão stickySem resposta
  • Posts no fórum: 1

07/03/2018, 12:41:29 via Web

Bom dia amigos,

Gostaria de uma ajuda. Estou fazendo um app que utiliza um banco de dados MYSQL, e estou utilizando php para extrair as informações do banco para o android. já consegui extrair os dados de uma tabela para o meu aplicativo, sendo que possui uma tabela que ele ao invés de trazer os dados do banco está informando no listview o endereço de memoria. Gostaria de uma ajuda para tentar resolver esse problema. Está salvando e deletando do banco corretamente na hora da visualização que está vindo com erros. Vou colocar um print da tela para ser mais claro.
image
Código Android do Activity:

package easyway2in.com.app1_mysqli;

import android.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.EditText;
import android.widget.ListView;
import android.widget.Toast;

import com.loopj.android.http.*;

import org.json.JSONArray;

import java.util.ArrayList;

import cz.msebera.android.httpclient.Header;

public class postoActivity extends AppCompatActivity {

private EditText etNomePosto, etEndereco, etQualificacao;
private Button btnSalvar;
private ListView lvDatos;
private AsyncHttpClient cliente;


@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_posto);

    etNomePosto = (EditText) findViewById(R.id.nomePosto);
    etEndereco = (EditText) findViewById(R.id.enderecoPosto);
    etQualificacao = (EditText) findViewById(R.id.qualificacaoPosto);
    btnSalvar = (Button) findViewById(R.id.btnSalvar);
    lvDatos = (ListView) findViewById(R.id.lvDatos);

    //precisa para conectar com o php
    cliente = new AsyncHttpClient();

    btnSalvar();
    obterPosto();

}

private void btnSalvar() {
    btnSalvar.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            if (etNomePosto.getText().toString().isEmpty() || etEndereco.getText().toString().isEmpty()) {
                Toast.makeText(postoActivity.this, "Ha campos vazios", Toast.LENGTH_LONG).show();

            } else {
                Posto posto = new Posto();
                posto.setNomeposto(etNomePosto.getText().toString().replaceAll(" ","%20"));
                posto.setEndereco(etEndereco.getText().toString().replaceAll(" ","%20"));
                posto.setQualificacao(Integer.parseInt(etQualificacao.getText().toString().replaceAll(" ","%20")));

                adicionarPosto(posto);
                try{
                    Thread.sleep(2000);
                } catch (InterruptedException e) {
                    e.printStackTrace();
                }

                obterPosto();

            }
        }
    });
}

private void adicionarPosto(Posto posto){

    //Não esquecer a ? no final da URL

    String url="***.000webhostapp.com/adicionarPosto.php?";

    //Definindo os paramentos

    String paramentos ="nomeposto="+posto.getNomeposto()+"&endereco="+posto.getEndereco()+"&qualificacao="+posto.getQualificacao();

    cliente.post(url + paramentos, new AsyncHttpResponseHandler() {
        @Override
        public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
            if(statusCode == 200){
                Toast.makeText(postoActivity.this, "Posto adicionado corretamente!", Toast.LENGTH_SHORT).show();
                etNomePosto.setText("");
                etEndereco.setText("");
                etQualificacao.setText("");

            }

        }

        @Override
        public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {

        }
    });

}

private void obterPosto(){
    String url="***.000webhostapp.com/obterPosto.php";
    cliente.post(url, new AsyncHttpResponseHandler() {
        @Override
        public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
            if(statusCode == 200){
                listarPosto(new String(responseBody));


            }

        }

        @Override
        public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {

        }
    });
}

private void listarPosto(String resposta){
    final ArrayList<Posto> lista = new ArrayList<Posto>();
    try{
        JSONArray jsonArray = new JSONArray(resposta);
        for(int i=0; i<jsonArray.length();i++){
            Posto p = new Posto();
            p.setIdposto(jsonArray.getJSONObject(i).getInt("id"));
            p.setNomeposto(jsonArray.getJSONObject(i).getString("nome"));
            p.setEndereco(jsonArray.getJSONObject(i).getString("endereco"));
            p.setQualificacao(jsonArray.getJSONObject(i).getInt("qualificacao"));


            lista.add(p);

        }
        ArrayAdapter<Posto> p = new ArrayAdapter<Posto>(this,android.R.layout.simple_list_item_1,lista);
        lvDatos.setAdapter(p);

        lvDatos.setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
            @Override
            public boolean onItemLongClick(AdapterView<?> adapterView, View view, int i, long l) {

                Posto posto = lista.get(i);
                String url = "****.000webhostapp.com/apagarPosto.php?id="+posto.getIdposto();
                cliente.post(url, new AsyncHttpResponseHandler() {
                    @Override
                    public void onSuccess(int statusCode, Header[] headers, byte[] responseBody) {
                        if(statusCode ==200){
                            Toast.makeText(postoActivity.this,"Posto foi apagado corretamento!",Toast.LENGTH_LONG).show();
                            try{
                                Thread.sleep(2000);
                            } catch (InterruptedException e) {
                                e.printStackTrace();
                            }
                            obterPosto();

                        }

                    }

                    @Override
                    public void onFailure(int statusCode, Header[] headers, byte[] responseBody, Throwable error) {

                    }
                });


                return true;
            }
        });

        lvDatos.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                Posto posto = lista.get(i);
                StringBuffer ub = new StringBuffer();
                ub.append("Nome:"+posto.getNomeposto()+"\n");
                ub.append("Endereco:"+posto.getEndereco()+"\n");

                AlertDialog.Builder ube = new AlertDialog.Builder(postoActivity.this);
                ube.setCancelable(true);
                ube.setTitle("Detalhes");
                ube.setMessage(posto.toString());
                ube.setIcon(R.drawable.ok);




            }
        });


    }
    catch (Exception e){
        e.printStackTrace();
    }


}

}

Seja o primeiro a responder

Artigos recomendados