Eu estava pensando em uma maneira de diminuir o acesso a banco esses dias.
Ainda não fui atras então não sei se estou falando besteira mas teria que ver se da pra carregar todos os elementos num List<objeto> e usar alguma propriedade pra fazer o filtro. algo tipo List<objeto>.search("texto").
posso estar viajando mas se der pra fazer assim deve melhorar bastante a performance.
Novo Hamburgo - RS - Brasil
------------------
------------------
Linux user: #525086
2013/2/5 Rebert Tomaz Aquino <reberttomaz@gmail.com>
a paginação complica, pois não tenho como paginar as cidades do estado.. pelo menos não posso . rsseu tb pensei em filtrar pela letra.. acho que funciona.. apesar de aumentar a consulta ao banco..Em 5 de fevereiro de 2013 13:44, Maicon Strey <mstrey@gmail.com> escreveu:Eu tive o mesmo problema e resolvi da seguinte forma:Ao carregar a tela, não exibo nenhuma cidade.Coloquei um campo para filtro no topo da tela e só passo a mostrar cidades quando o usuário digita a 4 letra (sem espaço) no filtro.com isso evito de mostrar todos os são alguma coisa.
Tenta fazer algo nesse sentido que vai ficar bem melhor.
Maicon Strey
Novo Hamburgo - RS - Brasil
------------------------------------Linux user: #5250862013/2/5 Diogo Henrique <diogjp10@gmail.com>Você está usando AsyncTask ?
Em 5 de fevereiro de 2013 11:07, marcelo yonamine <yonamine60@gmail.com> escreveu:Deveria existir um modo de paginação dos resultados na api (http://aplicacoes.mds.gov.br/sagi/simulacao/rebert/estado_municipio/lista_municipio.php?estado=), por exemplo um intervalo de 20 em 20.
Em 5 de fevereiro de 2013 11:52, Rebert Tomaz Aquino <reberttomaz@gmail.com> escreveu:Bom dia, desculpem meu primeiro email já ser uma dúvida...seguinte, meu programa esta consumindo muita memória e parando o aplicativo.. ele dá estouro de memória quando está carregando a lista de cidades.. se for um estado com pouca cidade vai tranquilo, mas quando puxa SP ou MG, é certeza de travar.alguem pode me ajudar?=================================== código ==========================================public void carregamunicipios(String estado) {System.gc();municipios.clear();ibges.clear();municipios.add("Escolha");ibges.add("0");// preenche os municipioscaminho_url = "http://aplicacoes.mds.gov.br/sagi/simulacao/rebert/estado_municipio/lista_municipio.php?estado="+ estado;// verifica a redeConnectivityManager connMgr = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);NetworkInfo networkInfo = connMgr.getActiveNetworkInfo();if (networkInfo != null && networkInfo.isConnected()) {// retorno = retorno+"rede OK";URL url2 = null;try {url2 = new URL(caminho_url);URLConnection yc2 = url2.openConnection();BufferedReader in2 = new BufferedReader(new InputStreamReader(yc2.getInputStream()));String inputLine2 = "", conteudo, nome, ibge="0";int pos_inicio = 0, pos_fim=0, tamanho_conteudo = 0;while ((inputLine2 = in2.readLine()) != null) {conteudo = inputLine2;//Log.d("conteudo", "--->: " + conteudo);tamanho_conteudo = conteudo.length();//Log.d("tam conteudo", "--->: " + tamanho_conteudo);while (tamanho_conteudo >= 3) {pos_inicio = conteudo.indexOf("<municipio>");pos_fim = conteudo.indexOf("</municipio>");nome = conteudo.substring(pos_inicio+11, pos_fim);municipios.add(nome);pos_inicio = conteudo.indexOf("<ibge>");pos_fim = conteudo.indexOf("</ibge>");ibge = conteudo.substring(pos_inicio+6, pos_fim);ibges.add(ibge);conteudo = conteudo.replaceFirst("<municipio>"+nome+"</municipio>","");conteudo = conteudo.replaceFirst("<ibge>"+ibge+"</ibge>","");//Log.d("conteudo NOVO", "--->: " + conteudo);tamanho_conteudo = conteudo.length();//Log.d("TAM CONT RESTO", "--->: " + tamanho_conteudo);} System.gc();// arruma no caso de brasilia tamanho = 1//Log.d("TAM municipioe", "--->: " + municipios.size());if (municipios.size()==2){// brasiliaibges.add(ibge);}//----------------------------}in2.close();} catch (MalformedURLException e) {// TODO Auto-generated catch blocke.printStackTrace();} catch (IOException e) {// TODO Auto-generated catch blocke.printStackTrace();}// ------------------------------------------// ------------------------------------------} else {retorno = retorno + "Sem conexão a rede";}// -----------------------------}public void listamunicipios() {//Identifica o Spinner no layoutspn2 = (Spinner) findViewById(R.id.autoCompleteMunicipio);//Cria um ArrayAdapter usando um padrão de layout da classe R do android, passando o ArrayList nomesArrayAdapter<String> arrayAdapter2 = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, municipios);ArrayAdapter<String> spinnerArrayAdapter2 = arrayAdapter2;spinnerArrayAdapter2.setDropDownViewResource(android.R.layout.simple_spinner_item);spn2.setAdapter(spinnerArrayAdapter2);//Método do Spinner para capturar o item selecionadospn2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> parent, View v, int posicao, long id) {//pega nome pela posiçãomunicipio = parent.getItemAtPosition(posicao).toString();ibge = ibges.get(posicao).toString();//Log.d("municipio", "--->: " + municipio);//Log.d("ibge", "--->: " + ibge);//imprime um Toast na tela com o nome que foi selecionadoif (municipio != "Escolha"){//Toast.makeText(PesquisaUm.this, "Municipio Selecionado: " + municipio, Toast.LENGTH_LONG).show();}}@Overridepublic void onNothingSelected(AdapterView<?> parent) {}});}--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
--
Rebert Tomaz
--
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.
You received this message because you are subscribed to the Google Groups "Android Brasil - Dev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to androidbrasil-dev+unsubscribe@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.






0 comentários:
Postar um comentário