package com.lgq.rssreader.task;
import java.util.ArrayList;
import java.util.List;
import com.lgq.rssreader.R;
import com.lgq.rssreader.adapter.BlogAdapter;
import com.lgq.rssreader.adapter.ChannelAdapter;
import com.lgq.rssreader.core.ReaderApp;
import com.lgq.rssreader.dal.BlogDalHelper;
import com.lgq.rssreader.entity.Blog;
import com.lgq.rssreader.entity.Channel;
import com.lgq.rssreader.enums.RssTab;
import android.content.Context;
import android.os.AsyncTask;
import android.support.v4.view.ViewGroupCompat;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ListAdapter;
import android.widget.ListView;
/**
* �������
*
* @author walkingp
* @date 2012-3-13
*/
public class PageTask<T> extends AsyncTask<Integer, Integer, List<T>> {
private ListView listView;
private ListAdapter adapter;
private RssTab tab;
private Context context;
public PageTask(ListView listView, RssTab t, Context c){
this.listView = listView;
this.tab = t;
this.context = c;
}
@Override
protected List<T> doInBackground(Integer... params) {
int type = params[0];
int index = params[1];
int size = params[2];
List<T> data = new ArrayList<T>();
BlogDalHelper helper = new BlogDalHelper();
if(type == 0){
data = (List<T>) helper.GetBlogList(tab, index, size);
}
if(type == 1){
data = (List<T>) helper.GetBlogList(tab, index, size);
}
helper.Close();
return data;
}
@Override
protected void onPostExecute(List<T> result) {
if (listView.getCount() == 0 || result == null || result.size() == 0) {
LayoutInflater inflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
View emptyView = inflater.inflate(R.layout.listview_empty, null);
listView.setEmptyView(emptyView);
}
adapter = null;
if(result.get(0) instanceof Blog){
adapter = new BlogAdapter(context, (List<Blog>) result, listView);
}
if(result.get(0) instanceof Channel){
adapter = new ChannelAdapter(context, (List<Channel>) result, listView);
}
listView.setAdapter(adapter);
listView.setSelection(1);
}
@Override
protected void onPreExecute() {
}
}