Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Me ferrei... agora o spiner tem que aguentar

Spinner com 400 registros é pra doido viu! kkkkkkkkkkk

--
Atenciosamente,

Lucas Xavier


Em 8 de julho de 2013 17:03, Felipe Aron <felipearon@gmail.com> escreveu:
Cara, não julgando teu chefe, nem querendo falar mal, mas o cara é uma "anta" né?!

Penso o seguinte: Pra que listar TODAS as cidades sendo que o usuário vai selecionar apenas 1? Ao invés de poluir com centenas de registros, crie um filtro para o usuário pesquisar a cidade que ele quer, até porque o usuário sabe o quer procurar.

Um exemplo no meu caso: Tenho uma tabela "Produto" com 40 mil registros. Acho desnecessário carregar tudo isso em memória, logo crio opções de filtro (pesquisa por referencia ou cod. barras) o usuário digita o que quer e retorno apenas o resultado de interesse, nada mais.

Agora se ainda sim ele quiser carregar tudo, pelo menos utilize um AutoCompleteTextView, fica mais fácil do usuário filtrar a cidade (pelo nome).


Em 8 de julho de 2013 16:53, Rebert Tomaz Aquino <reberttomaz@gmail.com> escreveu:

Meu chefe foi numa feira semana passada FIS.. alguma coisa rss. 
e lá um caboclo fez pra ele um app que consegue listar todas as cidades de um determinado estado.
Pois bem, uma de nossas apps aqui agente nunca conseguiu listar.. principalmente em aparelhos mais fracos, ( o meu por ex ) já nos mais modernos listam que é uma beleza.

Os 3 estados com mais cidades são MG, BA e SP

pra funcionar eu divido esses estados em 2 ex: BA A-L, BA M-Z.
se listar todas as cidades da bahia em um spiner ele trava.. 
e agora como é que eu faço, se o caboco conseguiu e meu chefe quer porque quer que eu liste essas 400 cidades num só spiner.

segue pedaço do fonte no app:

public void carregamunicipios(String estado) { System.gc(); municipios.clear(); ibges.clear(); municipios.add("Escolha a cidade"); ibges.add("0"); // preenche os municipios caminho_url = "http://aplicacoes.mds.gov.br/sagi/simulacao/android/NISEXTRA/estado_municipio/lista_municipio.php?estado="+ estado; //Log.d("caminho", "--->: " + caminho_url); // verifica a rede ConnectivityManager 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){ // brasilia ibges.add(ibge); } //---------------------------- } in2.close(); } catch (MalformedURLException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } // ------------------------------------------ // ------------------------------------------ } else { retorno = retorno + "Sem conexão a rede"; } // ----------------------------- } public void listamunicipios() { //Identifica o Spinner no layout spn2 = (Spinner) findViewById(R.id.autoCompleteMunicipio); spn2.setVisibility(View.VISIBLE); // apaga o segundo formulário ( já que estamos escolhendo estado cidade e nome ) TextView textView3 = (TextView)findViewById(R.id.textView3); textView3.setVisibility(View.GONE); TextView textView21 = (TextView)findViewById(R.id.textView21); textView21.setVisibility(View.GONE); TextView textView22 = (TextView)findViewById(R.id.textView22); textView22.setVisibility(View.GONE); EditText editTextNis = (EditText)findViewById(R.id.editTextNis); editTextNis.setVisibility(View.GONE); Button button21 = (Button)findViewById(R.id.button21); button21.setVisibility(View.GONE); ArrayAdapter<String> arrayAdapter2 = new ArrayAdapter<String>(this,android.R.layout.simple_spinner_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 selecionado spn2.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() { @Override public void onItemSelected(AdapterView<?> parent, View v, int posicao, long id) { //pega nome pela posição municipio = 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 selecionado if (municipio != "Escolha a cidade"){ //Toast.makeText(PesquisaUm.this, "Municipio Selecionado: " + municipio, Toast.LENGTH_LONG).show(); TextView textView2 = (TextView)findViewById(R.id.textView2); textView2.setVisibility(View.VISIBLE); EditText editTextNome = (EditText)findViewById(R.id.editTextNome); editTextNome.setVisibility(View.VISIBLE); Button button1 = (Button)findViewById(R.id.button1); button1.setVisibility(View.VISIBLE); } } @Override public void onNothingSelected(AdapterView<?> parent) { } }); }


fonte do xml

<Spinner
    android:id="@+id/autoCompleteMunicipio"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:contentDescription="@string/escolhaacidade"    
    android:visibility="invisible"
    android:text="@string/edit_municipio" />




--
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.
 
 



--
Analista-Programador

--
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.
 
 

  • Digg
  • Del.icio.us
  • StumbleUpon
  • Reddit
  • RSS

0 comentários:

Postar um comentário