package com.tv.view; import java.util.ArrayList; import java.util.List; import android.app.ListFragment; import android.content.Intent; import android.graphics.Bitmap; import android.os.AsyncTask; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.tv.btl.BaseApplication; import com.tv.btl.R; import com.tv.listener.FragListener; import com.tv.listener.ProductListener; import com.tv.model.Product; import com.tv.net.DownloadImage; import com.tv.net.DownloadProduct; import com.tv.net.JsonHandler; import com.tv.task.ProductTask; public class Frag_feed extends ListFragment implements ProductListener { public static final String UID = "uid"; public static final String PID = "pid"; public static final String PNAME = "pname"; public static final String UNAME = "uname"; public static final String PUBLICDATE = "public_date"; public static final String URL = "image_url"; public static final String DESCRIPTION = "description"; public static final String LON="lon"; public static final String LAT="lat"; View FragmentView; List<Product> model = new ArrayList<Product>(); FragmentArray adapter = null; Product product = null; Button vmore; public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { FragmentView = inflater.inflate(R.layout.frag_feed, container, false); return FragmentView; } public void onActivityCreated(Bundle Save) { super.onActivityCreated(Save); adapter = new FragmentArray(); init(); vmore =(Button) FragmentView.findViewById(R.id.frag_feed_more); vmore.setOnClickListener(new View.OnClickListener() { public void onClick(View v) { viewMore(); } }); } public void viewMore(){ BaseApplication bs =(BaseApplication) getActivity().getApplication(); System.out.println(bs.getFeedPage()); if(bs.getFeedPage()!=0){ ProductTask t = new ProductTask(ProductTask.MORE_FEED, this); t.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, new Product()); } } public void onStart() { super.onStart(); } public void saveFinish() { // TODO Auto-generated method stub } public void reloadFeed() { // TODO Auto-generated method stub } class FragmentArray extends ArrayAdapter<Product> { TextView pname, uname, date; ImageView img; Product pr; public FragmentArray() { super(Frag_feed.this.getActivity(), R.layout.row, model); } public View getView(int position, View convertView, ViewGroup parent) { View v = convertView; Holder h; if (v == null) { System.out.println(position + " Null"); LayoutInflater inflate = getActivity().getLayoutInflater(); v = inflate.inflate(R.layout.row, parent, false); h = new Holder(v); v.setTag(h); } else { h = (Holder) v.getTag(); } h.img.setTag((model.get(position)).getUrl()); h.populate(model.get(position)); return v; } } class Holder { TextView pname; TextView uname; TextView date; ImageView img; public Holder(View v) { pname = (TextView) v.findViewById(R.id.row_pname); uname = (TextView) v.findViewById(R.id.row_uname); date = (TextView) v.findViewById(R.id.row_date); img = (ImageView) v.findViewById(R.id.row_image); } public void populate(Product pr) { if (!pr.getInit() && pr.getUrl().equals(img.getTag())) { pname.setText(pr.getPname()); date.setText(pr.getDate()); uname.setText(pr.getUname()); DownloadProduct dl= new DownloadProduct(this.img, pr); dl.executeOnExecutor(AsyncTask.THREAD_POOL_EXECUTOR, ""); } else if (pr.getInit() && pr.getUrl().equals(img.getTag())) { pname.setText(pr.getPname()); date.setText(pr.getDate()); uname.setText(pr.getUname()); this.img.setImageBitmap(pr.getBitmap()); } } } public void onListItemClick(ListView list, View view, int position, long id) { Intent i = new Intent(getActivity(), ViewPost.class); product = model.get(position); i.putExtra(Frag_feed.UID, product.getUid()); i.putExtra(PID, product.getPid()); i.putExtra(PNAME, product.getPname()); i.putExtra(UNAME, product.getUname()); i.putExtra(PUBLICDATE, product.getDate()); i.putExtra(URL, product.getUrl()); i.putExtra(DESCRIPTION, product.getDes()); i.putExtra(LON, product.getLon()); i.putExtra(LAT, product.getLat()); startActivity(i); } public void onDestroy() { super.onDestroy(); System.out.println("destroy"); } public void init() { setListAdapter(adapter); ProductTask t = new ProductTask(ProductTask.FEED, this); Product f = new Product(); t.execute(f); } public void reload(List<Product> params) { System.out.println("sizeeee " + params.size()); for (int i = model.size() - 1; i >= 0; i--) { model.remove(i); } adapter.clear(); for (int i = 0; i < params.size(); i++) { model.add(params.get(i)); } adapter.notifyDataSetChanged(); System.out.println("count" + adapter.getCount()); } public void loadMore(List<Product> params) { for(int i=0;i<params.size();i++){ model.add(params.get(i)); } adapter.notifyDataSetChanged(); } }