- Posts no fórum: 1
07/03/2018, 12:41:29 via Web
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.
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();
}
}
}
Conteúdo editorial recomendado
Com o seu consentimento, o conteúdo externo é carregado aqui.
Ao clicar no botão acima, concorda que o conteúdo externo poderá ser-lhe exibido. Os dados pessoais podem ser transmitidos a fornecedores terceiros no processo. Pode encontrar mais informações sobre isto no nosso Política de Privacidade.