0

İts my custom adapter. not wrong but nullexceptionpointer.its my LogCat eror,NUllPointException eror. where is wrong this code?

public class CustomAdapter  extends ArrayAdapter<ARACBILGISI1>{

     private LayoutInflater vi ;
     private Context context;
     private ArrayList<ARACBILGISI1> liste;

       public CustomAdapter(Activity  context, int textViewResourceId, ArrayList<ARACBILGISI1> liste) {
            super(context, R.layout.araclistegorselim, liste);             
            vi= LayoutInflater.from(context);
            this.liste = liste;
            }


    @Override
     public View getView(int position, View convertView, ViewGroup parent) {
         ViewHolder holder;
         if (convertView  == null)
         {
              holder = new ViewHolder(); 
              vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
              convertView = vi.inflate(R.layout.araclistegorselim, parent,false);
              holder.aracplaka = (TextView) convertView.findViewById(R.id.plaka);
              holder.aracadres = (TextView) convertView.findViewById(R.id.kullanim);
              holder.X = (TextView) convertView.findViewById(R.id.x);
              holder.Y = (TextView) convertView.findViewById(R.id.y);
              holder.hizz = (TextView) convertView .findViewById(R.id.hiz);
              holder.mudurluk = (TextView) convertView.findViewById(R.id.mud);
              holder.aracresmi = (ImageView) convertView.findViewById(R.id.Aracresmi);
              convertView.setTag(holder);
         }else
         { 
              holder = (ViewHolder) convertView.getTag();     
         } 
         ARACBILGISI1 arac = liste.get(position);
         holder.aracplaka.setText(arac.getPlaka());
         holder.aracadres.setText(arac.GETKULLANIM());
         holder.X.setText(arac.GETX());
         holder.Y.setText(arac.GETY());
         holder.hizz.setText(arac.GETHIZ());
         holder.mudurluk.setText(arac.GETMUD());
         holder.aracresmi.setImageDrawable(context.getResources().getDrawable(arac.GETRESIM()));

        return convertView;
        }

        static class  ViewHolder{
        public TextView aracplaka,aracadres,X,Y,hizz,mudurluk;
        public ImageView aracresmi;
        }

}

my data,Activity add,its my LogCat eror,NUllPointException eror. where is wrong this code?

private ArrayList<ARACBILGISI1> getARACBILGISI(){
        ArrayList<ARACBILGISI1> takimList = new ArrayList<ARACBILGISI1>();
        takimList.add(new ARACBILGISI1("fg", "fgh", "asd", "23","aaaa","bbbb",R.drawable.yesil));
        takimList.add(new ARACBILGISI1("fg", "fgh", "asd", "23","aaaa","bbbb",R.drawable.yesil));
        takimList.add(new ARACBILGISI1("fg", "fgh", "asd", "23","aaaa","bbbb",R.drawable.yesil));
        takimList.add(new ARACBILGISI1("fg", "fgh", "asd", "23","aaaa","bbbb",R.drawable.yesil));
        return takimList;
    }

2 Answers2

1

1.Rename your Adapter better

Change this

public class adapter  extends ArrayAdapter<ARACBILGISI1>{

to

public class CustomAdapter  extends ArrayAdapter<ARACBILGISI1>{

2.Change this

 ArrayAdapter<ARACBILGISI1> aracadap = new adapter(this, R.layout.araclistegorselim, getARACBILGISI());

to

CustomAdapter aracadap = new CustomAdapter(this, R.layout.araclistegorselim, getARACBILGISI());

3.You can initialize LayoutInflater in constructor of adapter class

   private LayoutInflater vi ;
   public adapter(Activity  context, int layout, ArrayList<ARACBILGISI1> liste) {

        super(context, layout, liste);  
        this.liste = liste;
        this.context = context;
        vi= LayoutInflater.from(context);
        }

4.Use a ViewHolder pattern. It will improve performance

     public View getView(int position, View convertView, ViewGroup parent) {
     ViewHolder holder;
     if (convertView  == null)
     {
          holder = new ViewHolder(); 
          convertView = vi.inflate(R.layout.araclistegorselim, parent,false);
          holder.aracplaka = (TextView) convertView.findViewById(R.id.plaka);
          holder.aracadres = (TextView) convertView.findViewById(R.id.kullanim);
          holder.X = (TextView) convertView.findViewById(R.id.x);
          holder.Y = (TextView) convertView.findViewById(R.id.y);
          holder.hizz = (TextView) convertView .findViewById(R.id.hiz);
          holder.mudurluk = (TextView) convertView.findViewById(R.id.mud);
          holder.aracresmi = (ImageView) convertView.findViewById(R.id.Aracresmi);
          convetView.setTag(holder);
     }else
     { 
          holder = (ViewHolder) convertView.getTag();     
     } 
     ARACBILGISI1 arac = liste.get(position);
     holderaracplaka.setText(arac.getPlaka());
     holderaracadres.setText(arac.GETKULLANIM());
     holderX.setText(arac.GETX());
     holder.Y.setText(arac.GETY());
     holder.hizz.setText(arac.GETHIZ());
     holder.mudurluk.setText(arac.GETMUD());
     holderaracresmi.setImageDrawable(arac.GETRESIM());

    return convertView;
    }

    static class ViewHolder
    {
     TextView aracplaka,aracadres,X,Y,hiz,mudurluk;
     ImageView aracresmi;
    }

As a side note you need not inflate the layout in getView again since you have

  super(context, layout, liste);  

and do check ArrayAdapter constructors @

http://developer.android.com/reference/android/widget/ArrayAdapter.html

Raghunandan
  • 132,755
  • 26
  • 225
  • 256
  • @whats his bug? i do not get it?@Raghunandan – mmlooloo Aug 10 '14 at 19:54
  • @mmlooloo check this post http://stackoverflow.com/questions/9280965/arrayadapter-requires-the-resource-id-to-be-a-textview-xml-problems you will know yourself – Raghunandan Aug 10 '14 at 19:56
  • @user3927594 it should be `static class ViewHolder` i typed it wrongly as `static ViewHolder` ( a typo error overlooked). Now changed it – Raghunandan Aug 10 '14 at 20:05
  • @user3927594 another change to `private Context context;` Then `public adapter(Context context, int layout, ArrayList liste) { super(context, layout, liste);` – Raghunandan Aug 10 '14 at 20:09
  • Brother, ViewHolder holder eror "ViewHolder cannot be resolved to a type" –  Aug 10 '14 at 20:29
  • @user3927594 what is the problem – Raghunandan Aug 10 '14 at 20:31
  • the viewholder is static class in your adapter. can u not copy that from my post into your adapter. do read the docs once. better get hold of a tutorial – Raghunandan Aug 10 '14 at 20:34
  • Raghunandan please up your code. I copy this code my project but not run. You are right, dont read docs. but where is the problem this code –  Aug 10 '14 at 21:04
  • its runnnnn :) Thanks everybody and Raghunandan... thank you very much... edit code : holder.aracresmi.setImageResource(arac.GETRESIM()); –  Aug 10 '14 at 22:22
0

try this :

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

         if (convertView == null){
              vi = (LayoutInflater)getContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
            convertView = vi.inflate(R.layout.araclistegorselim, parent,false);
         }




 ARACBILGISI1 arac = liste.get(position);

 TextView aracplaka = (TextView) convertView
         .findViewById(R.id.plaka);
 TextView aracadres = (TextView) convertView
         .findViewById(R.id.kullanim);
 TextView X = (TextView) convertView
         .findViewById(R.id.x);
 TextView Y = (TextView) convertView
         .findViewById(R.id.y);
 TextView hizz = (TextView) convertView
         .findViewById(R.id.hiz);
 TextView mudurluk = (TextView) convertView
         .findViewById(R.id.mud);
 ImageView aracresmi = (ImageView) convertView
         .findViewById(R.id.Aracresmi);


 aracplaka.setText(arac.getPlaka());
 aracadres.setText(arac.GETKULLANIM());
 X.setText(arac.GETX());
 Y.setText(arac.GETY());
 hizz.setText(arac.GETHIZ());
 mudurluk.setText(arac.GETMUD());
 aracresmi.setImageDrawable(context.getResources().getDrawable(
         arac.GETRESIM()));


 return convertView ;
}   
mmlooloo
  • 18,937
  • 5
  • 45
  • 64