package com.example.ele_me.fragment; import java.util.ArrayList; import java.util.List; import android.annotation.SuppressLint; import android.app.Fragment; import android.content.Intent; import android.os.AsyncTask; import android.os.Bundle; import android.support.v4.widget.SlidingPaneLayout; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.AdapterView; import android.widget.AdapterView.OnItemClickListener; import android.widget.FrameLayout; import android.widget.FrameLayout.LayoutParams; import android.widget.ImageButton; import android.widget.ImageView; import android.widget.LinearLayout; import com.example.ele_me.R; import com.example.ele_me.activity.DianPingWebActivity; import com.example.ele_me.activity.RestaurantDetailActivity; import com.example.ele_me.adapter.HomePageRestaurantAdapter; import com.example.ele_me.entity.RestaurantEntity; import com.example.ele_me.util.RefreshableListView; import com.example.ele_me.util.RefreshableListView.OnRefreshListener; @SuppressLint("NewApi") public class HomeFragment extends Fragment implements OnClickListener { private View currentView; private LinearLayout openMenu; private RefreshableListView mListView; private HomePageRestaurantAdapter adapter; private List<RestaurantEntity> mlist; private int total = 21; private int step = 7; private int add = 7; private View listHeaderView; private ImageView head_pic; public void setCurrentViewPararms(FrameLayout.LayoutParams layoutParams) { currentView.setLayoutParams(layoutParams); } public FrameLayout.LayoutParams getCurrentViewParams() { return (LayoutParams) currentView.getLayoutParams(); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { // TODO Auto-generated method stub currentView = inflater.inflate(R.layout.slidingpane_home_layout, container, false); mListView = (RefreshableListView) currentView .findViewById(R.id.mineList); openMenu = (LinearLayout) currentView .findViewById(R.id.linear_above_toHome); listHeaderView = getActivity().getLayoutInflater().inflate( R.layout.home_head_view, null); head_pic = (ImageView) listHeaderView .findViewById(R.id.iv_home_head); openMenu.setOnClickListener(this); getDate(); setListener(); return currentView; } public void setListener() { mListView.setOnRefreshListener(new OnRefreshListener() { @Override public void onRefresh(RefreshableListView listView) { new NewDataTask().execute(); } }); mListView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int position, long arg3) { Intent intent = new Intent(getActivity(), RestaurantDetailActivity.class); intent.putExtra("name", mlist.get(position+1).getName()); startActivity(intent); } }); head_pic.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent intent = new Intent(getActivity(), DianPingWebActivity.class); startActivity(intent); } }); } private class NewDataTask extends AsyncTask<Void, Void, String> { @Override protected String doInBackground(Void... params) { try { Thread.sleep(1000); } catch (InterruptedException e) { } return null; } @Override protected void onPostExecute(String result) { int current = mListView.getAdapter().getCount(); if (current < total) { add += step; mListView.removeHeaderView(listHeaderView); getDate(); } mListView.completeRefreshing(); super.onPostExecute(result); } } @Override public void onClick(View v) { switch (v.getId()) { case (R.id.linear_above_toHome): openMenu.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { final SlidingPaneLayout slidingPaneLayout = (SlidingPaneLayout) getActivity() .findViewById(R.id.slidingpanellayout); if (slidingPaneLayout.isOpen()) { slidingPaneLayout.closePane(); } else { slidingPaneLayout.openPane(); } } }); break; } } private void getDate() { mlist = new ArrayList<RestaurantEntity>(); RestaurantEntity restaurant1 = new RestaurantEntity(); restaurant1.setLogo("drawable://" + R.drawable.pic_jigongbao); restaurant1.setName("齐鲁兄弟鸡公煲"); restaurant1.setItem_msg("月售208单 / 20元起送 / 30分钟"); restaurant1.setRate_numbers(1); restaurant1.setIs_rest(true); restaurant1.setPromotion("指定食品,每份减4元"); restaurant1.setIs_half(true); restaurant1.setIs_mins(true); mlist.add(restaurant1); restaurant1 = null; RestaurantEntity restaurant2 = new RestaurantEntity(); restaurant2.setLogo("drawable://" + R.drawable.pic_jixiang); restaurant2.setName("吉祥混沌"); restaurant2.setItem_msg("月售128单 / 14元起送 / 20分钟"); restaurant2.setPromotion("【新】下单立减3元,份份减3,加赠500ml康师傅果汁!"); restaurant2.setIs_mins(true); restaurant2.setRate_numbers(2); mlist.add(restaurant2); restaurant2 = null; RestaurantEntity restaurant3 = new RestaurantEntity(); restaurant3.setLogo("drawable://" + R.drawable.pic_milishi); restaurant3.setName("迷离士汉堡"); restaurant3.setItem_msg("月售221单 / 12元起送 / 30分钟"); restaurant3.setIs_favor(true); restaurant3.setRate_numbers(3); restaurant3.setPromotion("【新】赠500ml康师傅果汁!"); restaurant3.setIs_half(true); mlist.add(restaurant3); restaurant3 = null; RestaurantEntity restaurant4 = new RestaurantEntity(); restaurant4.setLogo("drawable://" + R.drawable.pic_shaxian); restaurant4.setName("沙县小吃"); restaurant4.setItem_msg("月售218单 / 11元起送 / 10分钟"); restaurant4.setIs_rest(true); restaurant4.setRate_numbers(4); restaurant4.setPromotion("帅哥给你送餐!"); restaurant4.setIs_mins(true); mlist.add(restaurant4); restaurant4 = null; RestaurantEntity restaurant5 = new RestaurantEntity(); restaurant5.setLogo("drawable://" + R.drawable.pic_shiguifan); restaurant5.setName("韩式石锅饭"); restaurant5.setItem_msg("月售82单 / 14元起送 / 22分钟"); restaurant5.setIs_favor(true); restaurant5.setRate_numbers(5); restaurant5.setIs_mins(true); mlist.add(restaurant5); restaurant5 = null; RestaurantEntity restaurant6 = new RestaurantEntity(); restaurant6.setLogo("drawable://" + R.drawable.pic_tengqi); restaurant6.setName("藤崎寿司"); restaurant6.setItem_msg("月售34单 / 11元起送 / 10分钟"); restaurant6.setRate_numbers(2); restaurant6.setIs_mins(true); mlist.add(restaurant6); restaurant6 = null; RestaurantEntity restaurant7 = new RestaurantEntity(); restaurant7.setLogo("drawable://" + R.drawable.pic_xiaohongmao); restaurant7.setName("小红帽快餐厅"); restaurant7.setItem_msg("月售233单 / 14元起送 / 20分钟"); restaurant7.setRate_numbers(3); restaurant7.setIs_mins(true); mlist.add(restaurant7); restaurant7 = null; adapter = new HomePageRestaurantAdapter(getActivity(), mlist); mListView.setAdapter(adapter); mListView.addHeaderView(listHeaderView); } }