niraj
niraj

Reputation: 95

How to Hide Footer when List view is Empty in android?

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();
            }

Upvotes: 1

Views: 813

Answers (5)

Arjun saini
Arjun saini

Reputation: 4182

   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();
        }

Upvotes: 0

M.ArslanKhan
M.ArslanKhan

Reputation: 3898

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();
        }

Upvotes: 0

Ravi Vaghela
Ravi Vaghela

Reputation: 3420

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();
  }

Upvotes: 0

Rashid
Rashid

Reputation: 1740

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);

Upvotes: 0

Jhaman Das
Jhaman Das

Reputation: 1114

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
}

Upvotes: 1

Related Questions