Boa noite tenho esse app funcionando normalmente ele faz pesquisa via sql direto no banco e me traz o resultado em outra activity ai vem a minha duvida:
atualmente tenho 4 editText para a entrada do usuario realizar a pesquisa , gostaria de utilizar um AutoCompleteTextView para sugerir os nomes ao digitar uma tecla nesses editText , porem nao sei como fazer para criar um String[] com o resultado de uma query do banco
tenho uma aplicação desktop que utiiza o mesmo banco , na aplicação desktop tenho o método abaixo para preencher uma lista com a query do banco
publicResultSetconsultarRastreador(Stringtemp){Rastreadorrst=newRastreador();JListlista;DefaultListModelmodelo=newDefaultListModel();lista=newJList(modelo);lista.setVisibleRowCount(4);Connectionc=ConexaoBD.getInstance();modelo.removeAllElements();ResultSetrs=null;List<Rastreador>lrst=newArrayList<Rastreador>();intresp=0;try{Stringsql="select * from rastreador where placa like '%"+temp+"%' order by placa";System.out.println(sql);PreparedStatementpst=c.prepareStatement(sql);rs=pst.executeQuery();while(rs.next()&resp<6){rst.setPlaca(rs.getString("placa"));lrst.add(rst);System.out.println(rs);modelo.addElement(rs.getString("placa"));jList1.setModel(modelo);resp++;}}catch(SQLExceptionex){System.out.println("Erro>"+ex.getMessage());}returnnull;}
sera que e possível fazer algo parecido no android??
R
rodriguesabner
Algumas coisas vão mudar (tipo o JList), claro, mas não custa tentar
G
Guilherme_Castro
criei esse metodo:
privatevoidtesteArrayList(){BancoNovoconecta=newBancoNovo();conecta.Conectar();List<String>NomeDVR=newArrayList<String>();AutoCompleteTextViewactv=findViewById(R.id.actv);intlinha=0;try{conecta.executaSQL("SELECT nome FROM dados;");while(conecta.rs.next()){NomeDVR.add(conecta.rs.getString("nome"));Log.d("#String capturada",NomeDVR.get(linha).toString());linha++;}}catch(Exceptione){e.printStackTrace();Log.d("#Erro autocomplete",e.getMessage());}finally{ArrayAdapter<String>adapter=newArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1,NomeDVR);actv.setAdapter(adapter);Log.d("#Cheguei Aqui",NomeDVR.get(1).toString());//conecta.desconecta();}}
porem ele não está preenchendo o autocomplete , pelo
ele me traz os nomes do banco , acredito esta fazendo algum erro na hora de instanciar o adapter
R
rodriguesabner
Faz um tempinho que não mexo com Android, e acho que não é possível. O que vc pode fazer é: recupera essas informações, joga pra um List, e o list vc preenche o autocomplete
G
Solucao aceita
Guilherme_Castro
Resolvido com o seguinte método ;
privatevoidtesteArrayList(){BancoNovoconecta=newBancoNovo();conecta.Conectar();List<String>NomeDVR=newArrayList<String>();Stringlista[];AutoCompleteTextViewactv=findViewById(R.id.actv);intlinha=0;try{conecta.executaSQL("SELECT nome FROM dados;");while(conecta.rs.next()){NomeDVR.add(conecta.rs.getString("nome"));Log.d("#String capturada",NomeDVR.get(linha).toString());linha++;}}catch(Exceptione){e.printStackTrace();Log.d("#Erro autocomplete",e.getMessage());}finally{Log.d("#Cheguei Aqui",NomeDVR.get(1).toString());Stringdvrnomes[]=NomeDVR.toArray(newString[NomeDVR.size()]);Log.d("ArrayString",dvrnomes.toString());ArrayAdapter<String>adapter=newArrayAdapter<String>(getApplicationContext(),android.R.layout.simple_list_item_1,dvrnomes);actv.setAdapter(adapter);//conecta.desconecta();}}