Search code examples
androidjsonlistviewbaseadapter

Load more option in list view did not show previous list in android


i have parsed Json data from the server. On which im showing all the data in listview and i have Load more option below the ListView. Now when i click load more option, this application reload whole list and did not show previous list data. Please help me find out the solution. Here is footer view click listener :

lFooter.setOnClickListener(new View.OnClickListener() {

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub
        page += 1;
        new ParseIssues().execute();
        listView.removeFooterView(v);
    }
});

in above code ParseIssues class parse json values and displays all the data in ListView Here is code for onPostExecute of AsynkTask class :

@Override
protected void onPostExecute(Void result) {
    super.onPostExecute(result);

    if(page < totalPage){
        listView.addFooterView(v);
    }

    listAdapter = new ListAdapterForSearch(activity, mainList);
    listView.setAdapter(listAdapter);

    // get listview current position - used to maintain scroll position
    int currentPosition = listView.getFirstVisiblePosition();
    listView.setSelection(currentPosition);
}

Here is BaseAdapter class:

public class ListAdapterForSearch extends BaseAdapter {

    private Activity activity;
    private ArrayList<HashMap<String, String>> data;
    private static LayoutInflater inflater = null;

    public ListAdapterForSearch(Activity a, ArrayList<HashMap<String, String>> d) {
        activity = a;
        data = d;
        inflater = LayoutInflater.from(activity);
    }

    @Override
    public int getCount() {
        return data.size();
    }

    @Override
    public Object getItem(int position) {
        return data.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

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

        View vi = convertView;
        if (convertView == null) {
            vi = inflater.inflate(R.layout.list_row_item, null);
        }

        TextView title = (TextView)vi.findViewById(R.id.title);

        HashMap<String, String> hash = new HashMap<String, String>();
        hash = data.get(position);

        title.setText(hash.get("title"));

        return vi;
    }
}

Solution

  • Check in your code you may have clear your mainList.