1

ArrayAdapter getView not getting called, whereas getCount returns listsize. I have applied setAdapter(null) before setting adapter with original list items on list to set adapter but it is not working.

And also tried BaseAdapter for the same, but still no luck

The code I tried is -

public  PrintLabelAdapter(Context context, int layoutResourceId, ArrayList<String> data) {
super(context, layoutResourceId, data);
       this.layoutResourceId = layoutResourceId;
       this.context = context;
       this.data = data;
       //Log.d("sublistcount", "sublistcount" +data.size());
   }

   @Override
   public int getCount() {

       Log.d("getcount", "getcount" + data.size());
       return data.size();
   }

   @Override
   public View getView(final int position, View convertView, ViewGroup parent) {
       View row = convertView;
       WeatherHolder holder = null;
      // db=new DatabaseHandler( context);

       Log.d("getcount", "getcount in getview" + data.size());
       final String weather;
       if (row == null) {

           Log.d("getcount", "getcount in getviewin row i");

           LayoutInflater inflater = ((Activity) context).getLayoutInflater();
           row = inflater.inflate(layoutResourceId, parent, false);

           holder = new WeatherHolder();
           // holder.imgIcon = (ImageView)row.findViewById(R.id.imgIcon);
           holder.txt = (TextView) row.findViewById(R.id.txt);

           holder.chk = (CheckBox) row.findViewById(R.id.chk);

           row.setTag(holder);
       } else {

           Log.d("getcount", "getcount in getviewin row i111");
           holder = (WeatherHolder) row.getTag();
       }

       weather = data.get(position);

       holder.txt.setText(weather);
       // holder.imgIcon.setImageResource(weather.icon);
       final WeatherHolder finalHolder = holder;
       holder.chk.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
           @Override
           public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

               if(isChecked){
                   finalHolder.chk.setButtonDrawable(R.mipmap.checked);

                   //db.updateMovingDay(weather.getTitle(),1);
               }
               else
               {
                  // db.updateMovingDay(weather.getTitle(),0);
                   finalHolder.chk.setButtonDrawable(R.mipmap.uncheck);

               }

           }
       });

       return row;
   }

   static class WeatherHolder {
       ImageView imgIcon;
       TextView txt;
       CheckBox chk;
   }

}

This is my setAdapter code -

PrintLabelAdapter  labeladapternew = new PrintLabelAdapter(mContext,R.layout.labeitem, fine.get(i));
list4.setAdapter(labeladapternew);
labeladapternew.notifyDataSetChanged();
list4.invalidateViews();

Please, let me know, if I am doing anything wrong.

EDIT

public class PrintLabelScreen  extends Activity {
    // http://developers.itextpdf.com/itext-java

    Context mContext;
    ImageView head, img_back, icon;
    TextView centertxt;
    ImageView search, print, inbox, home, fav;
    ListView list1, list2, list3, list4;
    String label;
    TextView text1, texts1, text2, texts2, text3, texts3, text4, texts4;

    String priorty;
    int i1;

    ArrayList aList;
    Button fragilebtn, fragilebtn1, fragilebtn2, fragilebtn3;
    List<String> sublist = null;
    List<String> sublist1 = null;
    String fragile;

    Button next, prev;

    int count = 0;
    PrintLabelAdapter     labeladapter;
    int prevcount = 0;
    Map<Integer, ArrayList<String>> m1 = new HashMap<Integer, ArrayList<String>>();
//    Map<Integer,List<Integer>> m2 = new HashMap<Integer,List<Integer>>();
//
List<ArrayList<User>> usize=null;
    List<ArrayList<String>> favlist=null;
    AbstractViewRenderer page = null;
    AbstractViewRenderer page1 = null;
    AbstractViewRenderer page2 = null;
    AbstractViewRenderer page3 = null;
    LinearLayout linear1, linear2;
    ProgressBar progressBar1;
DatabaseHandler db;
    ArrayList finalList = new ArrayList<String>();
    List<List<ArrayList<String>>> finallist;
 int count1=0;
RelativeLayout lastrel;
    //PdfDocument doc
PdfDocument doc=null;
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.printlabel);

        mContext = PrintLabelScreen.this;
       db=new DatabaseHandler(mContext);

        centertxt = (TextView) findViewById(R.id.centertxt);

        centertxt.setText("Print Labels");
        icon.setVisibility(View.GONE);
        img_back.setVisibility(View.GONE);
        head.setVisibility(View.GONE);
        search.setVisibility(View.GONE);
        fav.setVisibility(View.GONE);
        home.setVisibility(View.VISIBLE);
        print.setVisibility(View.VISIBLE);
        inbox.setVisibility(View.VISIBLE);
        text4 = (TextView) findViewById(R.id.text4);
        texts4 = (TextView) findViewById(R.id.texts4);



        Log.d("text", "text" + fragile);
        texts1.setText("UNPACKING PRIORITY:" + priorty);
        texts2.setText("UNPACKING PRIORITY:" + priorty);
        texts3.setText("UNPACKING PRIORITY:" + priorty);
        texts4.setText("UNPACKING PRIORITY:" + priorty);

        text1.setText(label);
        text2.setText(label);
        text3.setText(label);
        text4.setText(label);


        aList = new ArrayList(Arrays.asList(text.split(",")));



       if(aList.size()>40)
       {
        lastrel.setVisibility(View.VISIBLE);
       }

        Log.d("FFFFFFF", "FFFFFF" +  aList.size());




        if (!aList.get(0).equals("")) {
            i1 = (int) Math.ceil(aList.size() / 10.0);
        }

        sublist = new ArrayList<String>();


        int x = 0;
        for (int p = 0; p < i1; p++) {


            //Log.d("listiss", "listiss" +p);
            if (aList.size() >= (x + 10)) {
                sublist = new ArrayList<String>(aList.subList(x, x + 10));
                x += 10;
            } else {
                sublist = new ArrayList<String>(aList.subList(x, aList.size()));


            }




            finalList.add(sublist );

            Log.d("finallist", "finallist" +     finalList.size());


            prevcount=sublist.size();
    //db.addLabelItem(p, (ArrayList<String>) sublist);


          //  addLabelItem(String id, ArrayList < String > labellist)



            m1.put(p,(ArrayList<String>) sublist);


            if (fragile.equalsIgnoreCase("Y")) {
                fragilebtn.setVisibility(View.VISIBLE);
                fragile = "Y";

            } else {
                fragilebtn.setVisibility(View.GONE);
                fragile = "N";

            }


            if (aList.size() != 0) {
                if (p == 0) {

                    if (fragile.equalsIgnoreCase("Y")) {
                        fragilebtn.setVisibility(View.VISIBLE);
                        fragile = "Y";

                    } else {
                        fragilebtn.setVisibility(View.GONE);
                        fragile = "N";

                    }
       labeladapter = new PrintLabelAdapter(this,R.layout.labeitem,
                            (ArrayList) m1.get(p));
                    list1.setAdapter(labeladapter);


                } else if (p == 1) {
                    if (fragile.equalsIgnoreCase("Y")) {
                        fragilebtn1.setVisibility(View.VISIBLE);
                        fragile = "Y";


                    } else {
                        fragilebtn1.setVisibility(View.GONE);
                        fragile = "N";

                    }


             labeladapter = new PrintLabelAdapter(this,R.layout.labeitem,
                            (ArrayList) m1.get(p));
                    list2.setAdapter(labeladapter);

                } else if (p == 2) {
                    if (fragile.equalsIgnoreCase("Y")) {
                        fragilebtn2.setVisibility(View.VISIBLE);
                        fragile = "Y";

                    } else {
                        fragilebtn2.setVisibility(View.GONE);
                        fragile = "N";
                    }


             labeladapter = new PrintLabelAdapter(this,R.layout.labeitem,
                            (ArrayList) m1.get(p));
                    list3.setAdapter(labeladapter);

                } else if (p == 3) {


                    if (fragile.equalsIgnoreCase("Y")) {
                        fragilebtn3.setVisibility(View.VISIBLE);
                        fragile = "Y";

                    } else {
                        fragilebtn3.setVisibility(View.GONE);
                        fragile = "N";

                    }

        labeladapter = new PrintLabelAdapter(this,R.layout.labeitem,
                            (ArrayList) m1.get(p));
                    list4.setAdapter(labeladapter);

                }


            }


        }



        finallist=chopped(finalList,4);

        Log.d("FFFFFFF", "FFFFFF" +    finallist.size());

       // Log.d("Array", "Array 1" +finallist.size());

        inbox.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {


                int x = 0;


             try {
                 for (int i = 0; i < finallist.size(); i++) {

                     final int finalI = i;
                     page = new AbstractViewRenderer(mContext, R.layout.printlabel1) {
                         private String _text;

                         public void setText(String text) {



                         }

                         @Override
                         protected void initView(View view) {
                             // TextView tv_hello = (TextView)view.findViewById(R.id.tv_hello);
                             //PrintLabelAdapter labeladapter = null; //tv_hello.setText(_text);


                             favlist = finallist.get(finalI);

                             for (int j = 0; j < favlist.size(); j++) {


                                 if (j == 0) {

                                     labeladapter = new PrintLabelAdapter(mContext,R.layout.labitem,
                                             favlist.get(0));

                                     list1 = (ListView) view.findViewById(R.id.list1);
                                     list1.setAdapter(labeladapter);
                                     labeladapter.notifyDataSetChanged();
                                     text1 = (TextView) view.findViewById(R.id.text1);
                                     texts1 = (TextView) view.findViewById(R.id.texts1);

                                     fragilebtn = (Button) view.findViewById(R.id.fragilebtn);


                                     texts1.setText("UNPACKING PRIORITY:" + priorty);
                                     text1.setText(label);

                                     try {

                                         if (fragile.equalsIgnoreCase("Y")) {

                                             fragilebtn.setVisibility(View.VISIBLE);
                                         }
                                     } catch (Exception e) {
                                         e.printStackTrace();
                                     }

                                 }


                                 if (j == 1) {
                                     labeladapter = new PrintLabelAdapter(mContext,R.layout.labitem,
                                             favlist.get(1));
                                     //Log.d("listiss","listiss"+slist2.size());

                                     list2 = (ListView) view.findViewById(R.id.list2);
                                     list2.setAdapter(labeladapter);
                                     labeladapter.notifyDataSetChanged();
                                     text2 = (TextView) view.findViewById(R.id.text2);
                                     texts2 = (TextView) view.findViewById(R.id.texts2);
                                     fragilebtn1 = (Button) view.findViewById(R.id.fragilebtn1);


                                     texts2.setText("UNPACKING PRIORITY:" + priorty);
                                     text2.setText(label);

                                     try

                                     {
                                         if (fragile.equalsIgnoreCase("Y")) {

                                             fragilebtn1.setVisibility(View.VISIBLE);
                                         }
                                     } catch (Exception e)

                                     {
                                         e.printStackTrace();
                                         ;
                                     }


                                 }


                                 if (j == 2)

                                 {

                                     labeladapter = new PrintLabelAdapter(mContext,R.layout.labitem,
                                             favlist.get(2));


                                     list3 = (ListView) view.findViewById(R.id.list3);
                                     list3.setAdapter(labeladapter);
                                     labeladapter.notifyDataSetChanged();
                                     text3 = (TextView) view.findViewById(R.id.text3);
                                     texts3 = (TextView) view.findViewById(R.id.texts3);
                                     fragilebtn2 = (Button) view.findViewById(R.id.fragilebtn2);

                                     texts3.setText("UNPACKING PRIORITY:" + priorty);
                                     text3.setText(label);
                                     try {

                                         if (fragile.equalsIgnoreCase("Y")) {

                                             fragilebtn2.setVisibility(View.VISIBLE);
                                         }
                                     } catch (Exception e) {
                                         e.printStackTrace();
                                     }


                                 }


                                 if (j == 3) {

                                     labeladapter = new PrintLabelAdapter(mContext,R.layout.labitem,
                                             favlist.get(3));


                                     list4 = (ListView) view.findViewById(R.id.list4);
                                     list4.setAdapter(labeladapter);
                                     labeladapter.notifyDataSetChanged();
                                     text4 = (TextView) view.findViewById(R.id.text4);
                                     texts4 = (TextView) view.findViewById(R.id.texts4);
                                     fragilebtn3 = (Button) view.findViewById(R.id.fragilebtn3);
                                     texts4.setText("UNPACKING PRIORITY:" + priorty);
                                     text4.setText(label);

                                     try {
                                         if (fragile.equalsIgnoreCase("Y")) {

                                             fragilebtn3.setVisibility(View.VISIBLE);
                                         }
                                     } catch (Exception e) {
                                         e.printStackTrace();
                                     }

                                 }
                             }

                         }


                         //  }


                     };


                     page.setReuseBitmap(true);



                     doc.addPage(page);
                 }





                 doc.setRenderWidth(2800);
                 doc.setRenderHeight(3900);
                 doc.setOrientation(PdfDocument.A4_MODE.PORTRAIT);
                 //   doc.setProgressTitle(R.string.gen_please_wait);
                 //  doc.setProgressMessage(R.string.gen_pdf_file);
                 doc.setFileName(label);

                 doc.setInflateOnMainThread(false);
                 doc.setListener(new PdfDocument.Callback() {
                     @Override
                     public void onComplete(File file) {
                         Log.i(PdfDocument.TAG_PDF_MY_XML, "Complete" + file.getAbsolutePath());

                         {

                             String[] mailto = {""};
                             Uri uri = Uri.fromFile(file.getAbsoluteFile());
                             Intent emailIntent = new Intent(Intent.ACTION_SEND);
                             emailIntent.putExtra(Intent.EXTRA_EMAIL, mailto);
                             emailIntent.putExtra(Intent.EXTRA_SUBJECT, "Label for " + label);
                             emailIntent.putExtra(Intent.EXTRA_TEXT, "By android device");
                             emailIntent.setType("application/pdf");
                             emailIntent.putExtra(Intent.EXTRA_STREAM, uri);
                             startActivity(Intent.createChooser(emailIntent, "Send email using:"));
                         }
                     }

                     @Override
                     public void onError() {
                         Log.i(PdfDocument.TAG_PDF_MY_XML, "Error");
                     }
                 });

               try {
                   doc.createPdf(mContext);
               }
               catch(Exception e)
               {
                   e.printStackTrace();
               }



             }
             catch(Exception e)
             {
                 e.printStackTrace();
             }





            }
        });

        home.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                startActivity(new Intent(PrintLabelScreen.this, MainScreen.class));


            }
        });

        next.setOnClickListener(new View.OnClickListener() {
            ProgressDialog mProgressDialog;

            @Override
            public void onClick(View v) {

                //mProgressDialog = ProgressDialog.show(mContext, "", "Loading...");





                if(count1>=0&&count1<finallist.size()-1)


                {
                    count1++;
                    for (int i = 0; i < finallist.size(); i++) {

                        if (i == count1) {

                            favlist = finallist.get(i);



                            list1.setAdapter(null);
                           list2.setAdapter(null);
                          list3.setAdapter(null);
                          list4.setAdapter(null);
                         //labeladapter.notifyDataSetChanged();

                        new BackgroundProcess().execute(favlist);



                     }

                    }

                }
                }
        });

        prev.setOnClickListener(new View.OnClickListener() {

           // ProgressDialog mProgressDialog;

            @Override
            public void onClick(View v) {

            //   Log.d("sublistsize","sublistsize"+    prevcount);


                Log.d("count1","count2"+count1);

                Log.d("count1","count2"+finallist.size());
                Log.d("prevcount"," prevcount"+count1);
                if(count1>0 && count1<=finallist.size()) {
                    count1--;

                 for (int i = 0; i < finallist.size(); i++) {

                        if (i == count1) {


                            favlist=finallist.get(i);
                            list1.setAdapter(null);
                            list2.setAdapter(null);
                            list3.setAdapter(null);
                            list4.setAdapter(null);
                            //labeladapter.notifyDataSetChanged();
                            new BackgroundProcess().execute(favlist);
                        }
                    }
              }


            }
        });


    }

    class BackgroundProcess extends AsyncTask<List<ArrayList<String>>, String, String> {
        private ProgressDialog progress;
        List<ArrayList<String>> fine=null;

        Set<Integer> m1Key;
        ProgressDialog dialog = new ProgressDialog(PrintLabelScreen.this);

        @Override
        protected void onPreExecute() {

            dialog.setMessage("Loading...");
            //show dialog
            dialog.show();

            super.onPreExecute();



        }


        @Override
        protected String doInBackground(List<ArrayList<String>>... params) {



try {
fine= params[0];
    Log.d("finesize", "finesize" +    fine.size());

}
catch(Exception e)
{
    e.printStackTrace();
}
            //m1Key = m1.keySet();

            if (fine.size()!= 0) {
                return "1";
            }
            else {
                return "0";
            }
        }



        @Override
        protected void onPostExecute(String result) {
            super.onPostExecute(result);
            if(dialog != null && dialog.isShowing()){
                dialog.dismiss();
            }





            if (result.equalsIgnoreCase("1")) {


                for (int i = 0; i < fine.size(); i++) {



                    if (i == 0) {

                        if (fine.get(i).size() != 0) {


                            if (fragile.equalsIgnoreCase("Y")) {
                                fragilebtn.setVisibility(View.VISIBLE);
                                fragile = "Y";

                            } else {
                                fragilebtn.setVisibility(View.GONE);
                                fragile = "N";

                            }

                         //   Log.d("sublistcount", "sublistcount" +fine.get(i));
                            PrintLabelAdapter  labeladapternew  = new PrintLabelAdapter(mContext,R.layout.labeitem,
                                    fine.get(i));


                            list1.setAdapter(labeladapternew);
                            labeladapternew.notifyDataSetChanged();
list1.invalidateViews();

                        }
                    }
         if (i == 1) {


                        if (fine.get(i).size() != 0) {


                            if (fragile.equalsIgnoreCase("Y")) {
                                fragilebtn1.setVisibility(View.VISIBLE);
                                fragile = "Y";


                            } else {
                                fragilebtn1.setVisibility(View.GONE);
                                fragile = "N";

                            }


                            PrintLabelAdapter   labeladapternew  = new PrintLabelAdapter(mContext,R.layout.labeitem,
                                    fine.get(i));

                            //list2.setAdapter(null);
                            list2.setAdapter(labeladapternew);
                            labeladapternew.notifyDataSetChanged();

                            list2.invalidateViews();



                        }

                    }
          if (i == 2) {


                        if (fine.get(i).size() != 0) {



                            if (fragile.equalsIgnoreCase("Y")) {
                                fragilebtn2.setVisibility(View.VISIBLE);
                                fragile = "Y";

                            } else {
                                fragilebtn2.setVisibility(View.GONE);
                                fragile = "N";
                            }



                         //   Log.d("sublistcount", "sublistcount" +fine.get(i));
                            PrintLabelAdapter   labeladapternew = new PrintLabelAdapter(mContext,R.layout.labeitem,
                                    fine.get(i));
                          //  list3.setAdapter(null);

                            list3.setAdapter(labeladapternew);
                            labeladapternew.notifyDataSetChanged();

                            list3.invalidateViews();
                        }
                    }


           if (i == 3) {

                        if (fine.get(i).size() != 0) {


                            if (fragile.equalsIgnoreCase("Y")) {
                                fragilebtn3.setVisibility(View.VISIBLE);
                                fragile = "Y";

                            } else {
                                fragilebtn3.setVisibility(View.GONE);
                                fragile = "N";

                            }

                            //list4.setAdapter(null);

                        //  Log.d("sublistcount", "sublistcount" +fine.get(i));
                            PrintLabelAdapter  labeladapternew = new PrintLabelAdapter(mContext,R.layout.labeitem,
                                    fine.get(i));
                            list4.setAdapter(labeladapternew);

                            labeladapternew.notifyDataSetChanged();
                            list4.invalidateViews();



                        }

                    }




                }
            }

        }
    }

    // chops a list into non-view sublists of length L
    static <T> List<List<T>> chopped(List<T> list, final int L) {
        List<List<T>> parts = new ArrayList<List<T>>();
        final int N = list.size();
        for (int i = 0; i < N; i += L) {
            parts.add(new ArrayList<T>(
                            list.subList(i, Math.min(N, i + L)))
            );
        }
        return parts;
    }


}

EDIT

Its working for first time, and also works when I press back and next buttons at bottom, but after I send the mail, and come back, its not refreshing

Narendra Singh
  • 3,990
  • 5
  • 37
  • 78

3 Answers3

0

getView not getting called, whereas getCount returns listsize

Looking at your code everything is fine. However, just to make you aware that this can also be happened in case ListView's Visibility ot its rootview is set as GONE.

Bhavesh Patadiya
  • 25,740
  • 15
  • 81
  • 107
0

try this

public  PrintLabelAdapter(Context context, int layoutResourceId,ArrayList<String> data) {
     super();
   this.layoutResourceId = layoutResourceId;
   this.context = context;
   this.data = data;
   //Log.d("sublistcount", "sublistcount" +data.size());
}

    @Override
public int getCount() {

   Log.d("getcount", "getcount" + data.size());
   return data.size();
}

 @Override
public View getView(final int position, View convertView, ViewGroup parent) {
   View row = convertView;
   WeatherHolder holder = null;
  // db=new DatabaseHandler( context);

   Log.d("getcount", "getcount in getview" + data.size());
   final String weather;
   if (row == null) {

       Log.d("getcount", "getcount in getviewin row i");

       LayoutInflater inflater = ((Activity) context).getLayoutInflater();
       row = inflater.inflate(layoutResourceId, parent, false);

       holder = new WeatherHolder();
       // holder.imgIcon = (ImageView)row.findViewById(R.id.imgIcon);
       holder.txt = (TextView) row.findViewById(R.id.txt);

       holder.chk = (CheckBox) row.findViewById(R.id.chk);

       row.setTag(holder);
   } else {

       Log.d("getcount", "getcount in getviewin row i111");
       holder = (WeatherHolder) row.getTag();
   }

   weather = data.get(position);

   holder.txt.setText(weather);
   // holder.imgIcon.setImageResource(weather.icon);
   final WeatherHolder finalHolder = holder;
   holder.chk.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
       @Override
       public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

           if(isChecked){
               finalHolder.chk.setButtonDrawable(R.mipmap.checked);

               //db.updateMovingDay(weather.getTitle(),1);
           }
           else
           {
              // db.updateMovingDay(weather.getTitle(),0);
               finalHolder.chk.setButtonDrawable(R.mipmap.uncheck);

           }

       }
   });

   return row;
 }

 static class WeatherHolder {
   ImageView imgIcon;
   TextView txt;
   CheckBox chk;
  }

 }

Notice i Changed super() statement while adapter extends baseadapter

Hope It Helps Thanks.Refer Here https://androidruler.wordpress.com/2016/02/21/android-custom-listview-example/

Jagjit Singh
  • 1,909
  • 1
  • 14
  • 19
0

Here is my XML

Main Layout

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.lokesh.myapplication.TestClass">


<ListView
    android:id="@+id/lv_test"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

</ListView>
</LinearLayout>

item_list.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">

<TextView
    android:id="@+id/txt"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
<CheckBox
    android:id="@+id/chk"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />
</LinearLayout>

here is main class which is calling.

public class TestClass extends AppCompatActivity {

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.gridview_main);


    ListView ls = (ListView)findViewById(R.id.lv_test);
    ArrayList<String> hit = new ArrayList<>();
    hit.add("DONE");
    hit.add("DONE");
    hit.add("DONE");
    hit.add("DONE");
    hit.add("DONE");
    hit.add("DONE");
    hit.add("DONE");
    PrintLabelAdapter adapter = new          
    PrintLabelAdapter(this,R.layout.item_list,hit );
    ls.setAdapter(adapter);

}
}

Here is your adapter without change

 public class PrintLabelAdapter extends ArrayAdapter {


int layoutResourceId;
Context context;
ArrayList<String> data;

public PrintLabelAdapter(Context context, int layoutResourceId, ArrayList<String> data) {
    super(context, layoutResourceId, data);
    this.layoutResourceId = layoutResourceId;
    this.context = context;
    this.data = data;
    //Log.d("sublistcount", "sublistcount" +data.size());
}

@Override
public int getCount() {

    Log.d("getcount", "getcount" + data.size());
    return data.size();
}

@Override
public View getView(final int position, View convertView, ViewGroup parent) {
    View row = convertView;
    WeatherHolder holder = null;
    // db=new DatabaseHandler( context);

    Log.d("getcount", "getcount in getview" + data.size());
    final String weather;
    if (row == null) {

        Log.d("getcount", "getcount in getviewin row i");

        LayoutInflater inflater = ((Activity) context).getLayoutInflater();
        row = inflater.inflate(layoutResourceId, parent, false);

        holder = new WeatherHolder();
        // holder.imgIcon = (ImageView)row.findViewById(R.id.imgIcon);
        holder.txt = (TextView) row.findViewById(R.id.txt);

        holder.chk = (CheckBox) row.findViewById(R.id.chk);

        row.setTag(holder);
    } else {

        Log.d("getcount", "getcount in getviewin row i111");
        holder = (WeatherHolder) row.getTag();
    }

    weather = data.get(position);

    holder.txt.setText(weather);
    // holder.imgIcon.setImageResource(weather.icon);
    final WeatherHolder finalHolder = holder;
    holder.chk.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {

            if (isChecked) {
                //finalHolder.chk.setButtonDrawable(R.mipmap.checked);

                //db.updateMovingDay(weather.getTitle(),1);
            } else {
                // db.updateMovingDay(weather.getTitle(),0);
                //finalHolder.chk.setButtonDrawable(R.mipmap.uncheck);

            }

        }
    });

    return row;
}

static class WeatherHolder {
    TextView txt;
    CheckBox chk;
  }
 }
Lokesh Tiwari
  • 10,496
  • 3
  • 36
  • 45
  • The same adapter is working fine for the first time. But not working in a certain case, that is, after sending the mail from button click and coming back. – Narendra Singh Feb 23 '16 at 12:56