Tecnologia do Blogger.
RSS

Re: [androidbrasil-dev] Re: ListView + Adapter Repetindo Registros

Valeu cara, muito obrigado! 

Em sexta-feira, 12 de junho de 2015 15:27:37 UTC-3, Gink Labrev escreveu:
Isso mesmo. Cada vez que executa o método getView() é preciso reinserir os valores.

Eu só esqueci de adicionar convertView.setTag(viewHolder); depois de holder.dataProduto = (TextView) convertView .findViewById(R.id.dataProduto), ficando conforme abaixo.
Isso irá deixar mais eficiente.

    // ...
    holder.dataProduto = (TextView) convertView .findViewById(R.id.dataProduto);
    convertView.setTag(viewHolder);
    } else {
    // ...


Em 12 de junho de 2015 12:47, Vinny Valente <irmaoca...@gmail.com> escreveu:
Funcionou cara,

Muito obrigado.

Só pra ver eu entendi. 
O APP entrava no if a primeira vez e fazia certinho, depois quando nao era null ele jogava os mesmos valores q eram os q estavam já carregados?

Em sexta-feira, 12 de junho de 2015 11:20:41 UTC-3, Gink Labrev escreveu:
Faz assim:

@Override
public View getView(int position, View convertView, ViewGroup parent) {
    ViewHolder holder = null;
    LayoutInflater mInflater = (LayoutInflater) context.getSystemService(Activity.LAYOUT_INFLATER_SERVICE);
    if (convertView == null) {
        convertView = mInflater.inflate(R.layout.list_item, null);
        holder = new ViewHolder();
        holder.nomeProduto = (TextView) convertView .findViewById(R.id.nomeProduto);
        holder.imagemProduto = (ImageView) convertView.findViewById(R.id.imagemProduto);
        holder.precoProduto = (TextView) convertView.findViewById(R.id.precoProduto);
        holder.localProduto = (TextView) convertView.findViewById(R.id.localProduto);
        holder.dataProduto = (TextView) convertView .findViewById(R.id.dataProduto);
    } else {
        holder = (ViewHolder) convertView.getTag();
    }

    RowItem row_pos = rowItems.get(position);
    holder.imagemProduto.setImageResource(row_pos.getImagemProduto());
    holder.nomeProduto.setText(row_pos.getNomeProduto());
    holder.precoProduto.setText(row_pos.getPrecoProduto());
    holder.localProduto.setText(row_pos.getLocalProduto());
    holder.dataProduto.setText(row_pos.getDataProduto());

    return convertView;
}

2015-06-12 11:12 GMT-03:00 Vinny Valente <irmaoca...@gmail.com>:








public class CustomAdapterLista extends BaseAdapter {




        Context context;


        List<RowItem> rowItems;




        public  CustomAdapterLista (Context context, List<RowItem> rowItems) {


                this.context = context;


                this.rowItems = rowItems;


        }


       


        @Override


         public int getCount() {


          return rowItems.size();


         }




         @Override


         public Object getItem(int position) {


          return rowItems.get(position);


         }


         


         @Override


         public long getItemId(int position) {


          return rowItems.indexOf(getItem(position));


         }




         /* private view holder class */


         private class ViewHolder {


          ImageView imagemProduto;


          TextView nomeProduto;


          TextView precoProduto;


          TextView localProduto;


          TextView dataProduto;


         }


         


         @Override


         public View getView(int position, View convertView, ViewGroup parent) {




          ViewHolder holder = null;




          LayoutInflater mInflater = (LayoutInflater) context


            .getSystemService(Activity.LAYOUT_INFLATER_SERVICE);


          if (convertView == null) {


           convertView = mInflater.inflate(R.layout.list_item, null);


           holder = new ViewHolder();




           holder.nomeProduto = (TextView) convertView


             .findViewById(R.id.nomeProduto);


           holder.imagemProduto = (ImageView) convertView


             .findViewById(R.id.imagemProduto);


           holder.precoProduto = (TextView) convertView.findViewById(R.id.precoProduto);


           holder.localProduto = (TextView) convertView


             .findViewById(R.id.localProduto);


           holder.dataProduto = (TextView) convertView


                             .findViewById(R.id.dataProduto);




           RowItem row_pos = rowItems.get(position);




           holder.imagemProduto.setImageResource(row_pos.getImagemProduto());


           holder.nomeProduto.setText(row_pos.getNomeProduto());


           holder.precoProduto.setText(row_pos.getPrecoProduto());


           holder.localProduto.setText(row_pos.getLocalProduto());


           holder.dataProduto.setText(row_pos.getDataProduto());




           convertView.setTag(holder);


           


          } else {


           holder = (ViewHolder) convertView.getTag();


          }




          return convertView;


         }




}




Em quarta-feira, 10 de junho de 2015 17:38:11 UTC-3, Gink Labrev escreveu:
Kd o código do adapter?

Em 10 de junho de 2015 16:12, Vinny Valente <irmaoca...@gmail.com> escreveu:
Alguem? UP!


Em terça-feira, 9 de junho de 2015 19:10:05 UTC-3, Vinny Valente escreveu:
Olá galera,

Tenho uma ListView com Adapter que é a primeira tela e a principal do meu app. Quando abre o aplicativo já carrego ela via json, porem a cada 10 registros os mesmos se repetem.
Verifiquei a listas no debug e esta OK, porem na tela se repetem. 
Outra coisa que esta acontecendo é quando a tela é movida para baixo para ver outros registros e retorno ao inicio dela, o primeiro registro esta trocado por outro.

Alguém tem ideia?

Segue o código

    @Override


    protected void onCreate(Bundle savedInstanceState) {


        super.onCreate(savedInstanceState);


        setContentView(R.layout.activity_main);



        mNavigationDrawerFragment = (NavigationDrawerFragment)


                getSupportFragmentManager().findFragmentById(R.id.navigation_drawer);


        mTitle = getTitle();


        mNavigationDrawerFragment.setUp(


                R.id.navigation_drawer,


                (DrawerLayout) findViewById(R.id.drawer_layout));


               


                rq = Volley.newRequestQueue(MainActivity.this);


               


                callByJsonObjectRequest(null);

 


    }


   


        public void callByJsonObjectRequest(View view){


                Log.i("Script", "ENTREI: callByJsonObjectRequest()");


               


                params = new HashMap<String, String>();


                params.put("method", "web-data-jor");


               


                CustomJsonObjectRequest request = new CustomJsonObjectRequest(Method.POST,


                        url,


                        params,


                        new Response.Listener<JSONObject>(){


                                @Override


                                public void onResponse(JSONObject response) {


                                        Log.i("Script", "SUCCESS: "+ response);


               

...

--
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/d/optout.

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

0 comentários:

Postar um comentário