package com.xinxin.everyxday.fragment; import android.app.Fragment; import android.content.Intent; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.support.annotation.Nullable; import android.util.DisplayMetrics; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.BaseAdapter; import android.widget.Button; import android.widget.ImageView; import android.widget.RelativeLayout; import android.widget.TextView; import com.andexert.library.RippleView; import com.xinxin.everyxday.R; import com.xinxin.everyxday.activity.ToolbarControlDetailListViewActivity; import com.xinxin.everyxday.base.imgloader.ImgLoadUtil; import com.xinxin.everyxday.dao.model.Like; import com.xinxin.everyxday.dao.util.DbService; import com.xinxin.everyxday.util.DeviceInfoUtil; import com.xinxin.everyxday.util.TimeUtil; import com.xinxin.everyxday.widget.swipelistview.SwipeListView; import java.lang.ref.WeakReference; import java.util.List; /** * Created by mengxiao on 15/8/13. */ public class FragmentLike extends Fragment { protected static final String TAG = "FragmentLike"; protected LayoutInflater inflater; private List<Like> likeList; private DbService mDbService; private View containerView; private RelativeLayout parentLayout; private LikeAdapter mLikeAdapter; private SwipeListView mListView; class MyHandler extends Handler { private final WeakReference<FragmentLike> mTarget; MyHandler(FragmentLike target) { mTarget = new WeakReference<FragmentLike>(target); } @Override public void handleMessage(Message msg) { FragmentLike target = mTarget.get(); if (target != null) { switch (msg.what){ case 0 : initListView(); break; case 1: break; case 2: break; } } } } private MyHandler mHandler = new MyHandler(this); @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); mDbService = DbService.getInstance(getActivity()); inflater = LayoutInflater.from(getActivity()); new DbThread().start(); } @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { containerView = inflater.inflate(R.layout.fragment_common_list, null); parentLayout = (RelativeLayout)containerView.findViewById(R.id.parentLayout); return containerView; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); } private void initListView(){ DisplayMetrics dm = new DisplayMetrics(); dm = getResources().getDisplayMetrics(); int screenWidth = dm.widthPixels; int distance = screenWidth - DeviceInfoUtil.dip2px(getActivity(),80); View view = inflater.inflate(R.layout.common_listview,null); mListView = (SwipeListView)view.findViewById(R.id.common_listview); mListView.setOffsetLeft(distance); if(mLikeAdapter == null){ mLikeAdapter = new LikeAdapter(); } mListView.setAdapter(mLikeAdapter); parentLayout.removeAllViews(); parentLayout.addView(view); } class DbThread extends Thread{ public void run(){ likeList = mDbService.loadAllLike(); if(null != likeList){ if(likeList.size() > 0){ Message message = mHandler.obtainMessage(); message.what = 0; mHandler.sendMessage(message); }else{ Message message = mHandler.obtainMessage(); message.what = 1; mHandler.sendMessage(message); } }else{ Message message = mHandler.obtainMessage(); message.what = 2; mHandler.sendMessage(message); } } } class LikeAdapter extends BaseAdapter{ @Override public int getCount() { return likeList.size(); } @Override public Like getItem(int position) { return likeList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { final Like vo = likeList.get(position); if (convertView == null) { convertView = inflater.inflate(R.layout.like_item,null); } TextView userName = (TextView)convertView.findViewById(R.id.showorder_list_user_name); userName.setText(vo.getTitle().replace("今日最佳:", "")); ImageView orderImg = (ImageView)convertView.findViewById(R.id.showorder_list_img); ImgLoadUtil.displayImageWithAnimationAndNoCorner(vo.getCover(), orderImg); TextView publishTime = (TextView)convertView.findViewById(R.id.new_time); publishTime.setText(TimeUtil.getMonthAndDay(vo.getCreateTime())); TextView category = (TextView)convertView.findViewById(R.id.new_sort); category.setText("#"+vo.getCategory()); Button delete = (Button)convertView.findViewById(R.id.id_remove); delete.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { mDbService.deleteLike(vo.getId()); likeList.remove(position); notifyDataSetChanged(); mListView.closeOpenedItems(); } }); RippleView mRippleView = (RippleView)convertView.findViewById(R.id.item_rippleview); mRippleView.setOnRippleCompleteListener(new RippleView.OnRippleCompleteListener() { @Override public void onComplete(RippleView rippleView) { Intent intent = new Intent(); intent.setClass(getActivity(), ToolbarControlDetailListViewActivity.class); intent.putExtra("today_new_title", vo.getTitle().replace("今日最佳:", "")); intent.putExtra("today_new_id", Integer.parseInt(vo.getNewid())); intent.putExtra("today_detail_new_url", vo.getDetailNew()); intent.putExtra("today_new_cover",vo.getCover()); intent.putExtra("today_new_time",vo.getCreateTime()); intent.putExtra("today_new_avatar",vo.getAvatar()); startActivity(intent); } }); return convertView; } } }