Autore Topic: Si può usare il ViewHolder in un detailFragment?  (Letto 396 volte)

Offline Mikykly91

  • Utente junior
  • **
  • Post: 91
  • Respect: 0
    • Google+
    • Mostra profilo
  • Dispositivo Android:
    Htc one, Nexus 7 2013
  • Play Store ID:
    Michele Marconi
  • Sistema operativo:
    Surface 2 pro win 8.1
Si può usare il ViewHolder in un detailFragment?
« il: 16 Febbraio 2014, 20:02:53 CET »
0
Ciao a tutti, ho un applicazione che avevo realizzato anni passati che non utilizza i fragment, vorrei inserire una listview con un viewholder nel mio detailfragment ma ho notato che ricevo 2 errori: il primo su context e il secondo su getItem con il seguente errore "The method getItem(int) is undefined for the type DetailFragment".

Codice: [Seleziona]
package com.michele.restaurantxpress;

import android.app.Activity;
import android.app.Fragment;
import android.content.Context;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;



public class DetailFragment extends Fragment {
       
       

        @Override
        public View onCreateView(LayoutInflater inflater, ViewGroup container,
                        Bundle savedInstanceState) {
                View view = inflater.inflate(R.layout.detail_fragment,container,false);
                setHasOptionsMenu(true);
               
                                   
                return view;
        }
       
        @Override
        public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
                inflater.inflate(R.menu.detail , menu);
        }
       
       
        public View getView(final int position, View convertView,
                        ViewGroup parent) {

                                               
                ViewHolder viewHolder;
               
                if(convertView==null){

                        // inflate the layout
                LayoutInflater inflater = ((Activity) context).getLayoutInflater();
                convertView = inflater.inflate(R.layout.detail_fragment, parent, false);


                viewHolder = new ViewHolder();

                        viewHolder.nome = (TextView) convertView
                                        .findViewById(R.id.nome);
                        viewHolder.prezzo = (TextView) convertView
                                        .findViewById(R.id.prezzo);
                        viewHolder.ingredienti = (TextView) convertView
                                        .findViewById(R.id.ingredienti);
                        viewHolder.immagine = (ImageView) convertView
                                        .findViewById(R.id.imageViewImmagine);
                        viewHolder.imgAggiunta = (ImageView) convertView
                                        .findViewById(R.id.imageViewAggiunta);

                        convertView.setTag(viewHolder);
                       
                }else{
                // we've just avoided calling findViewById() on resource everytime
                // just use the viewHolder
                viewHolder = (ViewHolder) convertView.getTag();
            }
                       
                final Pietanza item = getItem(position);
               
                // assign values if the object is not null
            if(item != null) {

            viewHolder.immagine.setImageBitmap(null);
                   
                if (item.immagine != null) {
                        Bitmap bMap = BitmapFactory.decodeByteArray(item.immagine,
                                        0, item.immagine.length);
                       
                        viewHolder.immagine.setImageBitmap(Bitmap.createScaledBitmap(bMap, 110,110, false));
                }
                viewHolder.nome.setText(item.nome);
                viewHolder.prezzo.setText(item.prezzo);
                viewHolder.ingredienti.setText(item.ingredienti);
       
            }
           
                return convertView;
                }
       
       
        public static class ViewHolder {
                public TextView nome;
                public TextView prezzo;
                public ImageView immagine;
                public ImageView imgAggiunta;
                public TextView ingredienti;
        }

}

Non saprei come correggere perché non ho mai usato i fragment.

grazie in anticipo