1

I have a List View in which items are loaded from server and have a footer in listview,problem is that when there is no item i.e. list view is Empty footer is visible to user .what I want If there is no item in listview then footer is not visible to user .How can I do that kindly help me .

I will be very appreciate.

here is my code:-

protected void onPostExecute(final String result) {

        m_ProgressView.setVisibility(View.GONE);
        try {
            m_oResponseobject = new JSONObject(result);// getting response from server
            JSONArray posts = m_oResponseobject.optJSONArray("dealList");


            for (int i = 0; i < posts.length(); i++) {
                JSONObject post = posts.getJSONObject(i);
                item = new CDealAppDatastorage();
                item.setM_szHeaderText(post.getString("dealname"));
                item.setM_szsubHeaderText(post.getString("dealcode"));
                item.setM_n_Image(m_n_FormImage[i]);
                s_oDataset.add(item);

            }

            // LoadMore button
            Button btnLoadMore = new Button(getActivity());
            btnLoadMore.setText("LOAD MORE DEALS");
            btnLoadMore.setBackgroundResource(R.drawable.button_boarder);
            btnLoadMore.setTextAppearance(getActivity(), android.R.style.TextAppearance_DeviceDefault_Small);
            btnLoadMore.setTextColor(Color.WHITE);
            btnLoadMore.setGravity(Gravity.CENTER);



            // Adding Load More button to lisview at bottom
            m_ListView.addFooterView(btnLoadMore);
            m_oAdapter = new CDealAppListingAdapter(getActivity(), s_oDataset);// create adapter object and add arraylist to adapter
            m_ListView.setAdapter(m_oAdapter);//adding adapter to recyclerview
            m_oAdapter.notifyDataSetChanged();
            }
Jhaman Das
  • 1,094
  • 13
  • 28
niraj
  • 95
  • 1
  • 10
  • Possible duplicate of [Hiding footer in ListView](http://stackoverflow.com/questions/7576099/hiding-footer-in-listview) – Sufian Apr 20 '16 at 07:49

5 Answers5

1

Hide your footer like this :

// Firs check the list size is greater than 0:

if(s_oDataset.size > 0)
{
 // Add your footer here

}else
{
 // Dont not add your footer or Hide your footer
}
Jhaman Das
  • 1,094
  • 13
  • 28
0

You can get the size of your listview

listview.getCount();

then if it is equal to zero then change your button visibility

btnLoadMore.setVisibility(View.GONE);
Rashid
  • 1,700
  • 1
  • 23
  • 56
0

see below code that can e you can hide ListView footer when ListView is empty

 if(!s_oDataset.isEmpty()){
        m_ListView.addFooterView(btnLoadMore);
        m_oAdapter = new CDealAppListingAdapter(getActivity(), s_oDataset);// create adapter object and add arraylist to adapter
        m_ListView.setAdapter(m_oAdapter);//adding adapter to recyclerview
        m_oAdapter.notifyDataSetChanged();
  }
Ravi Vaghela
  • 3,420
  • 2
  • 23
  • 51
0

Here is code, hope so it will work

protected void onPostExecute(final String result) {

    m_ProgressView.setVisibility(View.GONE);
    try {
        m_oResponseobject = new JSONObject(result);// getting response from server
        JSONArray posts = m_oResponseobject.optJSONArray("dealList");


        for (int i = 0; i < posts.length(); i++) {
            JSONObject post = posts.getJSONObject(i);
            item = new CDealAppDatastorage();
            item.setM_szHeaderText(post.getString("dealname"));
            item.setM_szsubHeaderText(post.getString("dealcode"));
            item.setM_n_Image(m_n_FormImage[i]);
            s_oDataset.add(item);

        }

        // LoadMore button
        Button btnLoadMore = new Button(getActivity());
        btnLoadMore.setText("LOAD MORE DEALS");
        btnLoadMore.setBackgroundResource(R.drawable.button_boarder);
        btnLoadMore.setTextAppearance(getActivity(), android.R.style.TextAppearance_DeviceDefault_Small);
        btnLoadMore.setTextColor(Color.WHITE);
        btnLoadMore.setGravity(Gravity.CENTER);



        // Adding Load More button to lisview at bottom
        if(listview.getCount()>0){
        m_ListView.addFooterView(btnLoadMore);
        }


        m_oAdapter = new CDealAppListingAdapter(getActivity(), s_oDataset);// create adapter object and add arraylist to adapter
        m_ListView.setAdapter(m_oAdapter);//adding adapter to recyclerview
        m_oAdapter.notifyDataSetChanged();
        }
M.ArslanKhan
  • 3,640
  • 8
  • 34
  • 56
0
   protected void onPostExecute(final String result) {

    m_ProgressView.setVisibility(View.GONE);
    try {
        m_oResponseobject = new JSONObject(result);// getting response from server
        JSONArray posts = m_oResponseobject.optJSONArray("dealList");


        for (int i = 0; i < posts.length(); i++) {
            JSONObject post = posts.getJSONObject(i);
            item = new CDealAppDatastorage();
            item.setM_szHeaderText(post.getString("dealname"));
            item.setM_szsubHeaderText(post.getString("dealcode"));
            item.setM_n_Image(m_n_FormImage[i]);
            s_oDataset.add(item);

        }

        // LoadMore button
        Button btnLoadMore = new Button(getActivity());
        btnLoadMore.setText("LOAD MORE DEALS");
        btnLoadMore.setBackgroundResource(R.drawable.button_boarder);
        btnLoadMore.setTextAppearance(getActivity(), android.R.style.TextAppearance_DeviceDefault_Small);
        btnLoadMore.setTextColor(Color.WHITE);
        btnLoadMore.setGravity(Gravity.CENTER);



        // Adding Load More button to lisview at bottom

if(!s_oDataset.size()==0)
{
m_ListView.addFooterView(btnLoadMore);
}

        m_oAdapter = new CDealAppListingAdapter(getActivity(),      s_oDataset);// create adapter object and add arraylist to adapter
        m_ListView.setAdapter(m_oAdapter);//adding adapter to recyclerview
        m_oAdapter.notifyDataSetChanged();
        }
Arjun saini
  • 4,223
  • 3
  • 23
  • 51