GUJ Discussões   :   últimos tópicos   |   categorias   |   GUJ Respostas

Preencher Spinner com Dados do Banco MySql PHP


#1

Olá galera, preciso de uma pequena ajuda no meu codigo… está dando erro no primeiro Try.

final List<String> list1 = new ArrayList<String>();
        try{
            URL urlspinner = new URL("http://homecar.16mb.com/android/spinnercarro2.php");
            urlConnection = (HttpURLConnection) urlspinner.openConnection();
            urlConnection.connect();
            is = urlConnection.getInputStream();

        }catch (Exception e){

            Log.e("Fail 3", e.toString());
            Toast.makeText(getApplicationContext(),"algo errado", Toast.LENGTH_LONG).show();
            finish();
        }
       try {

            BufferedReader reader = new BufferedReader(new InputStreamReader(is, "iso-8859-1"),8);
            StringBuilder sb = new StringBuilder();
            while ((line = reader.readLine()) !=null){
                sb.append(line + "/n");
            }
            is.close();
            result = sb.toString();

        }catch (Exception e){
            Log.e("Fail 2", e.toString());
        }

        try{

            JSONArray JA = new JSONArray(result);
            JSONObject json = null;

            name = new String[JA.length()];

            for(int i=0;i<JA.length();i++){
                json=JA.getJSONObject(i);
                name[i]=json.getString("descricao");

            }

            Toast.makeText(getApplicationContext(),"sss", Toast.LENGTH_LONG).show();
            for(int i=0;i<name.length;i++){
                list1.add(name[i]);
            }
            Toast.makeText(getApplicationContext(),"len", Toast.LENGTH_LONG).show();
            spinner_fn();

        }catch (Exception e){

            Log.e("Fail 3",e.toString());

        }


Segue o método:


private void spinner_fn(){
        ArrayAdapter<String> dataAdapter1 = new ArrayAdapter<String>(TelaLocar.this, android.R.layout.simple_spinner_item, name);
        spinnerLocarCarro.setAdapter(dataAdapter1);
        spinnerLocarCarro.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener(){
            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1, int position, long id){
                spinnerLocarCarro.setSelection(position);
            }
            @Override
            public void onNothingSelected(AdapterView<?> arg0){
            }
        });
    }


codigo php

<?php
include_once 'conexao2.php';

$sql = $dbcon->query("SELECT * FROM veiculo WHERE status='y'");

while($dados = mysqli_fetch_assoc($sql)){
$tmp[] = $dados['descricao'];
}

echo json_encode($tmp);

?>

#2

Se este trecho está na classe que representa a thread principal, o erro vai ocorrer por quê o android espera que você abra uma thread independente para requisições como esta.
Independente disso, qual a mensagem de erro exibida no log que você captura aqui Log.e("Fail 3", e.toString());?


#3

Boa Tarde Luis,

Muito obrigado pela atenção!

A mensagem de erro é: E/Fail 3: android.os.NetworkOnMainThreadException


#4

Exceção de rede na thread principal…
Como eu disse, você vai precisar criar uma estrutura separada para criar a requisição.


#5

Perdão Mano…Como assim? sou novato nessa área…


#6

Conseguir fazer aqui… Exatamente como vc mencionou. Obrigado!