1.activity界面

package cn.com.dsyc.canteenappforseller;import cn.com.dsyc.canteenappforseller.widget.ActionBarItem;import android.os.Bundle;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentActivity;import android.support.v4.app.FragmentPagerAdapter;import android.support.v4.view.ViewPager;import android.support.v4.view.ViewPager.OnPageChangeListener;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup.LayoutParams;import android.widget.LinearLayout;public class MainActivity extends FragmentActivity implements MyReceiver.OnReceiveListener {private MyReceiver mReceiver;private ActionBarItem[] mActionBarItems;private FragmentBase[] mFragments;private ViewPager mViewPager;private int mPosition;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);mReceiver = new MyReceiver(this);mReceiver.register(this);findWidget();createTabs();}@Overrideprotected void onDestroy() {// TODO Auto-generated method stubsuper.onDestroy();mReceiver.unregister(this);}@Overridepublic void onReceive(String action) {// TODO Auto-generated method stubif (action.equals(MyReceiver.ACTION_LOGOUT)) {finish();}}private void createTabs() {OnClickListener tabItemClickListener = new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubint position = (Integer)v.getTag();mViewPager.setCurrentItem(position, false);}};mActionBarItems = new ActionBarItem[]{new ActionBarItem(this, R.string.scan, R.drawable.scan_selected, R.drawable.scan_normal, R.color.action_bar_text_on_color, R.color.action_bar_text_color),new ActionBarItem(this, R.string.manage, R.drawable.manage_selected, R.drawable.manage_normal, R.color.action_bar_text_on_color, R.color.action_bar_text_color),new ActionBarItem(this, R.string.me, R.drawable.me_selected, R.drawable.me_normal, R.color.action_bar_text_on_color, R.color.action_bar_text_color)};for (int i = 0; i < mActionBarItems.length; i++) {mActionBarItems[i].setTag(i);mActionBarItems[i].setOnClickListener(tabItemClickListener);}LinearLayout llTabs = (LinearLayout)findViewById(R.id.ll_tabs);LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(0, LayoutParams.MATCH_PARENT);layoutParams.weight = 1;for (ActionBarItem tabItem : mActionBarItems) {llTabs.addView(tabItem, layoutParams);}mFragments = new FragmentBase[] {new ScanFragment(),new ManageFragment(),new MeFragment()};mViewPager.setOffscreenPageLimit(mFragments.length - 1);mViewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()){@Overridepublic Fragment getItem(int position) {// TODO Auto-generated method stubreturn mFragments[position];}@Overridepublic int getCount() {// TODO Auto-generated method stubreturn mFragments.length;}});mViewPager.setOnPageChangeListener(new OnPageChangeListener(){@Overridepublic void onPageScrolled(int position, float positionOffset,int positionOffsetPixels) {// TODO Auto-generated method stubif (positionOffset > 0) {if (mPosition == position)transitTabItem(position + 1, positionOffset);elsetransitTabItem(position, 1 - positionOffset);}}@Overridepublic void onPageSelected(int position) {// TODO Auto-generated method stubsetTabItemOn(position);}@Overridepublic void onPageScrollStateChanged(int state) {// TODO Auto-generated method stub}});mPosition = 0;mActionBarItems[mPosition].setOnPercent(1);mViewPager.setCurrentItem(mPosition);}<pre name="code" class="java"><span style="font-family: Arial, Helvetica, sans-serif;">private void findWidget() {</span>
mViewPager = (ViewPager)findViewById(R.id.vp);}private void transitTabItem(int position, float percent) {mActionBarItems[position].setOnPercent(percent);mActionBarItems[position].setOnPercent(percent);}private void setTabItemOn(int position) {mActionBarItems[mPosition].setOnPercent(0);mPosition = position;mActionBarItems[mPosition].setOnPercent(1);}}

 2、activity_main.xml界面  

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"    xmlns:tools="http://schemas.android.com/tools"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:background="@color/white"    tools:context=".MainActivity" >    <android.support.v4.view.ViewPager    android:id="@+id/vp"    android:layout_width="match_parent"    android:layout_height="match_parent"    android:layout_above="@+id/divider" />    <View        android:id="@id/divider"        style="@style/Divider"        android:layout_above="@+id/ll_tabs" />    <LinearLayout        android:id="@+id/ll_tabs"        android:layout_width="match_parent"        android:layout_height="@dimen/action_bar_height"        android:layout_alignParentBottom="true"        android:background="@color/action_bar_background"        android:orientation="horizontal" /></RelativeLayout>
3.ActionBarItem.java

package cn.com.dsyc.canteenappforseller.widget;import cn.com.dsyc.canteenappforseller.R;import android.content.Context;import android.view.LayoutInflater;import android.widget.FrameLayout;import android.widget.ImageView;import android.widget.TextView;public class ActionBarItem extends FrameLayout {private ActionBarIconView mTabIconView;private ActionBarTitleView mTabTitleView;private ImageView mImageViewUnread;private TextView mTextViewUnread;public ActionBarItem(Context context) {super(context);// TODO Auto-generated constructor stubinit();}public ActionBarItem(Context context, int textId, int onResId, int offResId, int onTextColorId, int offTextColorId) {super(context);// TODO Auto-generated constructor stubinit();mTabIconView.setImageResource(onResId, offResId);mTabTitleView.setTextColorResource(onTextColorId, offTextColorId);mTabTitleView.setText(textId);mImageViewUnread.setVisibility(GONE);mTextViewUnread.setVisibility(GONE);}public void setUnread(boolean hasUnread) {mImageViewUnread.setVisibility(hasUnread ? VISIBLE : GONE);mTextViewUnread.setVisibility(GONE);}public void setUnread(int count) {mImageViewUnread.setVisibility(GONE);if (count == 0) {mTextViewUnread.setVisibility(GONE);} else {mTextViewUnread.setVisibility(VISIBLE);mTextViewUnread.setText(String.valueOf(count));}}public void setOnPercent(float onPercent) {mTabIconView.setOnPercent(onPercent);mTabTitleView.setOnPercent(onPercent);}private void init() {LayoutInflater.from(getContext()).inflate(R.layout.action_bar_item, this, true);findWidget();}private void findWidget() {mTabIconView = (ActionBarIconView)findViewById(R.id.tiv);mTabTitleView = (ActionBarTitleView)findViewById(R.id.ttv);mImageViewUnread = (ImageView)findViewById(R.id.iv_unread);mTextViewUnread = (TextView)findViewById(R.id.tv_unread);}}
4、ActionBarIconView.java

package cn.com.dsyc.canteenappforseller.widget;import android.content.Context;import android.graphics.drawable.Drawable;import android.graphics.drawable.LayerDrawable;import android.util.AttributeSet;import android.widget.ImageView;public class ActionBarIconView extends ImageView {private LayerDrawable mLayerDrawable;public ActionBarIconView(Context context) {super(context);// TODO Auto-generated constructor stub}public ActionBarIconView(Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated constructor stub}public ActionBarIconView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);// TODO Auto-generated constructor stub}public void setImageResource(int onResId, int offResId) {// TODO Auto-generated method stubDrawable[] drawables = new Drawable[] {getResources().getDrawable(onResId),getResources().getDrawable(offResId) };mLayerDrawable = new LayerDrawable(drawables);setOnPercent(0);}public void setOnPercent(float onPercent) {mLayerDrawable.getDrawable(0).setAlpha(Math.round(255 * onPercent));mLayerDrawable.getDrawable(1).setAlpha(Math.round(255 * (1 - onPercent)));setImageDrawable(mLayerDrawable);}}
5.ActionBarTitleView.java

package cn.com.dsyc.canteenappforseller.widget;import cn.com.dsyc.canteenappforseller.utility.ColorHelper;import android.content.Context;import android.util.AttributeSet;import android.widget.TextView;public class ActionBarTitleView extends TextView {private int mOnColor;private int mOffColor;public ActionBarTitleView(Context context) {super(context);// TODO Auto-generated constructor stub}public ActionBarTitleView(Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated constructor stub}public ActionBarTitleView(Context context, AttributeSet attrs, int defStyle) {super(context, attrs, defStyle);// TODO Auto-generated constructor stub}public void setTextColorResource(int onColorId, int offColorId) {// TODO Auto-generated method stubmOnColor = getResources().getColor(onColorId);mOffColor = getResources().getColor(offColorId);}public void setOnPercent(float onPercent) {int color = ColorHelper.getMixColor(mOnColor, onPercent, mOffColor, 1 - onPercent);setTextColor(color);}}

5.ManageFragment.java

package cn.com.dsyc.canteenappforseller;import android.content.Intent;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.ListView;import android.widget.AdapterView.OnItemClickListener;public class ManageFragment extends FragmentBase {private ListView mListView;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// TODO Auto-generated method stubView view = inflater.inflate(R.layout.fragment_manage, container, false);setTitleText(view, R.string.manage);findWidget(view);show();return view;}private void findWidget(View view) {mListView = (ListView)view.findViewById(R.id.lv);}private void show() {SettingItem[] items = {new SettingItem(R.drawable.manage_canteen, R.string.manage_canteen),new SettingItem(R.drawable.manage_category, R.string.manage_category),new SettingItem(R.drawable.manage_dish, R.string.manage_dish),new SettingItem(R.drawable.manage_period, R.string.manage_period),new SettingItem(R.drawable.manage_schedule, R.string.manage_schedule),new SettingItem(R.drawable.manage_order, R.string.manage_order),new SettingItem(R.drawable.manage_comment, R.string.manage_comment),new SettingItem(R.drawable.manage_preview, R.string.manage_preview)};mListView.setAdapter(new SettingAdapter(getActivity(), items));mListView.setOnItemClickListener(new OnItemClickListener(){@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {// TODO Auto-generated method stubswitch ((int)id) {case R.string.manage_canteen: showCanteen(); break;case R.string.manage_category: showCategory();break;case R.string.manage_dish: showDish();break;case R.string.manage_period: showPeriod();break;case R.string.manage_schedule: showSchedule(); break;case R.string.manage_order: showOrder();break;case R.string.manage_comment: showComment(); break;case R.string.manage_preview: showPreview();break;}}});}private void showPreview() {Intent intent = new Intent(getActivity(), PreviewActivity.class);startActivity(intent);}private void showOrder() {Intent intent = new Intent(getActivity(), OrderActivity.class);startActivity(intent);}private void showPeriod() {Intent intent = new Intent(getActivity(), PeriodActivity.class);startActivity(intent);}private void showDish() {Intent intent = new Intent(getActivity(), DishActivity.class);startActivity(intent);}private void showCategory() {Intent intent = new Intent(getActivity(), CategoryActivity.class);startActivity(intent);}private void showCanteen() {Intent intent = new Intent(getActivity(), CanteenActivity.class);startActivity(intent);}private void showSchedule() {Intent intent = new Intent(getActivity(), ScheduleActivity.class);startActivity(intent);}private void showComment() {Intent intent = new Intent(getActivity(), DishCommentActivity.class);startActivity(intent);}}

6.MeFragment.java

package cn.com.dsyc.canteenappforseller;import cn.com.dsyc.canteenappforseller.model.Seller;import cn.com.dsyc.canteenappforseller.utility.RequestCode;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.AdapterView;import android.widget.AdapterView.OnItemClickListener;import android.widget.ListView;public class MeFragment extends FragmentBase {private ListView mListViewSeller;private ListView mListViewCommon;private ListView mListViewWallet;private ListView mListViewSetting;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// TODO Auto-generated method stubView view = inflater.inflate(R.layout.fragment_me, container, false);setTitleText(view, R.string.me);findWidget(view);showSeller();showCommon();showWallet();showSetting();return view;}@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stubif (requestCode == RequestCode.EDIT) {if (resultCode == Activity.RESULT_OK)showSeller();}}private void findWidget(View view) {mListViewSeller = (ListView) view.findViewById(R.id.lv_seller);mListViewCommon = (ListView) view.findViewById(R.id.lv_common);mListViewWallet = (ListView) view.findViewById(R.id.lv_wallet);mListViewSetting = (ListView) view.findViewById(R.id.lv_setting);}private void showSeller() {App app = (App) getActivity().getApplication();Seller model = app.getSeller();SettingItem[] items = {new SettingItem(R.drawable.seller, R.string.me_seller, model.UserName) };mListViewSeller.setAdapter(new SettingAdapter(getActivity(), items));mListViewSeller.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {// TODO Auto-generated method stubswitch ((int) id) {case R.string.me_seller:doSeller();break;}}});}private void showCommon() {SettingItem[] items = {new SettingItem(R.drawable.photo_album, R.string.me_photo_album),new SettingItem(R.drawable.favorites, R.string.me_favorites),new SettingItem(R.drawable.share, R.string.me_share) };mListViewCommon.setAdapter(new SettingAdapter(getActivity(), items));mListViewCommon.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {// TODO Auto-generated method stubswitch ((int) id) {case R.string.me_share:doShare();break;}}});}private void showWallet() {SettingItem[] items = { new SettingItem(R.drawable.wallet,R.string.me_wallet), };mListViewWallet.setAdapter(new SettingAdapter(getActivity(), items));}private void showSetting() {SettingItem[] items = { new SettingItem(R.drawable.setting,R.string.me_setting), };mListViewSetting.setAdapter(new SettingAdapter(getActivity(), items));mListViewSetting.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> parent, View view,int position, long id) {// TODO Auto-generated method stubswitch ((int) id) {case R.string.me_setting:doSetting();break;}}});}private void doSeller() {Intent intent = new Intent(getActivity(), PersonalInfoActivity.class);startActivity(intent);}private void doShare() {Intent intent = new Intent(getActivity(), ShareActivity.class);startActivity(intent);}private void doSetting() {Intent intent = new Intent(getActivity(), SettingActivity.class);startActivity(intent);}}

package cn.com.dsyc.canteenappforseller;import android.content.DialogInterface.OnDismissListener;import android.os.Message;import android.support.v4.app.Fragment;import android.view.View;import android.view.View.OnClickListener;import android.widget.Button;import android.widget.FrameLayout;import android.widget.ImageButton;import android.widget.ImageView;import android.widget.RelativeLayout;import android.widget.TextView;public abstract class FragmentBase extends Fragment implements MyHandler.OnHandleListener {private MyHandler mHandler = new MyHandler(this);private ProgressDialog mProgressDialog;private boolean mFindWidget = true;private ImageButton mTitleBarImageButtonBackArrow;private View mTitleBarDivider;private TextView mTitleBarTextViewTitle;private Button mTitleBarButtonTitle;private FrameLayout mTitleBarFrameLayout1;private ImageButton mTitleBarImageButton1;private ImageView mTitleBarImageView1;private FrameLayout mTitleBarFrameLayout2;private ImageButton mTitleBarImageButton2;private ImageView mTitleBarImageView2;private Button mTitleBarButton;private RelativeLayout mLoadingBarRelativeLayout;protected void setTitleText(View view, int resId) {findWidget(view);mTitleBarTextViewTitle.setText(resId);}protected void setTitleButton(View view, String text, Object tag, OnClickListener listener) {findWidget(view);mTitleBarButtonTitle.setText(text);mTitleBarButtonTitle.setTag(tag);if (listener == null)mTitleBarButtonTitle.setEnabled(false);else {mTitleBarButtonTitle.setEnabled(true);mTitleBarButtonTitle.setOnClickListener(listener);}}protected void showBackArrow(View view, OnClickListener l) {findWidget(view);mTitleBarImageButtonBackArrow.setVisibility(View.VISIBLE);mTitleBarImageButtonBackArrow.setOnClickListener(l);mTitleBarDivider.setVisibility(View.VISIBLE);}protected void showImageButton1(View view, int resId, OnClickListener l) {findWidget(view);mTitleBarImageButton1.setImageResource(resId);mTitleBarImageButton1.setOnClickListener(l);mTitleBarFrameLayout1.setVisibility(View.VISIBLE);}protected void showImageView1(boolean visible) {mTitleBarImageView1.setVisibility(visible ? View.VISIBLE : View.GONE);}protected void showImageButton2(View view, int resId, OnClickListener l) {findWidget(view);mTitleBarImageButton2.setImageResource(resId);mTitleBarImageButton2.setOnClickListener(l);mTitleBarFrameLayout2.setVisibility(View.VISIBLE);}protected void showImageView2(boolean visible) {mTitleBarImageView2.setVisibility(visible ? View.VISIBLE : View.GONE);}protected void showButton(View view, int resId, OnClickListener l) {findWidget(view);mTitleBarButton.setText(resId);mTitleBarButton.setOnClickListener(l);mTitleBarButton.setVisibility(View.VISIBLE);}protected void enableButton(View view, boolean enabled) {findWidget(view);mTitleBarButton.setEnabled(enabled);}protected void showProgressDialog(int textId) {        mProgressDialog = new ProgressDialog(getActivity(), textId);        mProgressDialog.show();}protected void hideProgressDialog() {if (mProgressDialog == null) return;mProgressDialog.dismiss();mProgressDialog = null;}protected void showLoadingBar() {mLoadingBarRelativeLayout.setVisibility(View.VISIBLE);}protected void hideLoadingBar() {mLoadingBarRelativeLayout.setVisibility(View.GONE);}protected void sendMessage(int what) {sendMessage(what, null);}protected void sendMessage(int what, Object obj) {Message message = mHandler.obtainMessage();message.what = what;message.obj = obj;mHandler.sendMessage(message);}@Overridepublic void onHandle(int what, Object obj) {}protected void showAlertDialog(int messageId, int titleId, OnDismissListener l) {String message = getString(messageId);showAlertDialog(message, titleId, l);}protected void showAlertDialog(String message, int titleId, OnDismissListener l) {AlertDialog dialog = new AlertDialog(getActivity(), message, titleId);dialog.setOnDismissListener(l);dialog.show();}protected void showAlertDialog(int messageId) {showAlertDialog(messageId, -1, null);}protected void showAlertDialog(int messageId, int titleId) {showAlertDialog(messageId, titleId, null);}protected void showAlertDialog(String message) {showAlertDialog(message, -1, null);}protected void showAlertDialog(String message, int titleId) {showAlertDialog(message, titleId, null);}private void findWidget(View view) {if (!mFindWidget)return;mFindWidget = false;mTitleBarImageButtonBackArrow = (ImageButton)view.findViewById(R.id.title_bar_ib_back_arrow);mTitleBarDivider = view.findViewById(R.id.title_bar_divider);mTitleBarTextViewTitle = (TextView)view.findViewById(R.id.title_bar_tv_title);mTitleBarButtonTitle = (Button)view.findViewById(R.id.title_bar_btn_title);mTitleBarFrameLayout1 = (FrameLayout)view.findViewById(R.id.title_bar_fl1);mTitleBarImageButton1 = (ImageButton)view.findViewById(R.id.title_bar_ib1);mTitleBarImageView1 = (ImageView)view.findViewById(R.id.title_bar_iv1);mTitleBarFrameLayout2 = (FrameLayout)view.findViewById(R.id.title_bar_fl2);mTitleBarImageButton2 = (ImageButton)view.findViewById(R.id.title_bar_ib2);mTitleBarImageView2 = (ImageView)view.findViewById(R.id.title_bar_iv2);mTitleBarButton = (Button)view.findViewById(R.id.title_bar_btn);mLoadingBarRelativeLayout = (RelativeLayout)view.findViewById(R.id.loading_bar_rl);}}


package cn.com.dsyc.canteenappforseller;import java.io.IOException;import java.util.ArrayList;import java.util.List;import in.srain.cube.views.loadmore.LoadMoreContainer;import in.srain.cube.views.loadmore.LoadMoreHandler;import in.srain.cube.views.loadmore.LoadMoreListViewContainer;import in.srain.cube.views.ptr.PtrClassicFrameLayout;import in.srain.cube.views.ptr.PtrDefaultHandler;import in.srain.cube.views.ptr.PtrFrameLayout;import in.srain.cube.views.ptr.PtrHandler;import cn.com.dsyc.canteenappforseller.apiclient.ApiException;import cn.com.dsyc.canteenappforseller.apiclient.ApiOrder;import cn.com.dsyc.canteenappforseller.apiclient.ApiOrderItem;import cn.com.dsyc.canteenappforseller.model.Canteen;import cn.com.dsyc.canteenappforseller.model.OrderEx;import cn.com.dsyc.canteenappforseller.model.OrderItemEx;import cn.com.dsyc.canteenappforseller.model.Seller;import cn.com.dsyc.canteenappforseller.utility.RequestCode;import cn.com.dsyc.canteenappforseller.widget.LoadMoreFooterView;import android.app.Activity;import android.content.Intent;import android.os.Bundle;import android.util.SparseArray;import android.view.LayoutInflater;import android.view.View;import android.view.View.OnClickListener;import android.view.ViewGroup;import android.widget.Button;import android.widget.ListView;public class ScanFragment extends FragmentBase {private final static int PAGE_SIZE = 5;private PtrClassicFrameLayout mPtrClassicFrameLayout;private LoadMoreListViewContainer mLoadMoreListViewContainer;private Button mButtonCanteen;private Button mButtonScan;private ListView mListView;private int mCanteenNo;private String mCanteenName;private int mPageNumber;private int mTotalCount;private OrderExAdapter mAdapter;private List<OrderEx> mOrderExs;private SparseArray<OrderItemEx[]> mOrderItemExs;@Overridepublic View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState) {// TODO Auto-generated method stubView view = inflater.inflate(R.layout.fragment_scan, container, false);setTitleText(view, R.string.scan);findView(view);mOrderExs = new ArrayList<OrderEx>();mOrderItemExs = new SparseArray<OrderItemEx[]>();App app = (App)getActivity().getApplication();Canteen canteen = app.getFirstCanteen();if (canteen == null) {mCanteenNo = -1;mCanteenName = "";} else {mCanteenNo = canteen.No;mCanteenName = canteen.Name;}mButtonCanteen.setText(mCanteenName);mButtonCanteen.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent intent = new Intent(getActivity(), CanteenSelectActivity.class);intent.putExtra("CanteenNo", mCanteenNo);startActivityForResult(intent, RequestCode.SELECT);}});mButtonScan.setOnClickListener(new OnClickListener(){@Overridepublic void onClick(View v) {// TODO Auto-generated method stubIntent intent = new Intent(getActivity(), ScanActivity.class);intent.putExtra("CanteenNo", mCanteenNo);startActivityForResult(intent, RequestCode.SCAN);}});        mPtrClassicFrameLayout.setLastUpdateTimeRelateObject(this);        mPtrClassicFrameLayout.setPtrHandler(new PtrHandler() {            @Override            public boolean checkCanDoRefresh(PtrFrameLayout frame, View content, View header) {                return PtrDefaultHandler.checkContentCanBePulledDown(frame, mListView, header);            }            @Override            public void onRefreshBegin(PtrFrameLayout frame) {            mPageNumber = 1;            mOrderExs.clear();            mOrderItemExs.clear();            loadData();            }        });        LoadMoreFooterView footerView = new LoadMoreFooterView(getActivity());        mLoadMoreListViewContainer.setLoadMoreView(footerView);        mLoadMoreListViewContainer.setLoadMoreUIHandler(footerView);        mLoadMoreListViewContainer.setLoadMoreHandler(new LoadMoreHandler(){@Overridepublic void onLoadMore(LoadMoreContainer loadMoreContainer) {// TODO Auto-generated method stubmLoadMoreListViewContainer.postDelayed(new Runnable(){@Overridepublic void run() {// TODO Auto-generated method stubloadDataMore();}}, 1500);}                });loadData();return view;}@Overridepublic void onActivityResult(int requestCode, int resultCode, Intent data) {// TODO Auto-generated method stubif (requestCode == RequestCode.SELECT && resultCode == Activity.RESULT_OK) {mCanteenNo = data.getIntExtra("CanteenNo", -1);mCanteenName = data.getStringExtra("CanteenName");mButtonCanteen.setText(mCanteenName);loadData();} else if (requestCode == RequestCode.SCAN && resultCode == Activity.RESULT_OK) {loadData();}}@Overridepublic void onHandle(int what, Object obj) {// TODO Auto-generated method stubswitch (what) {case R.id.msg_load:mPtrClassicFrameLayout.refreshComplete();mLoadMoreListViewContainer.loadMoreFinish(mOrderExs.size() == 0, mTotalCount > mOrderExs.size());showData(false);break;case R.id.msg_load_more:mLoadMoreListViewContainer.loadMoreFinish((Integer)obj == 0, mTotalCount > mOrderExs.size());showData(true);break;case R.id.msg_network_disconnect:mPtrClassicFrameLayout.refreshComplete();mLoadMoreListViewContainer.loadMoreFinish(true, true);showAlertDialog(R.string.please_check_network_connection);break;case R.id.msg_network_error:mPtrClassicFrameLayout.refreshComplete();mLoadMoreListViewContainer.loadMoreFinish(true, true);showAlertDialog((String)obj);break;}}private void findView(View view) {mButtonCanteen = (Button) view.findViewById(R.id.btn_canteen);mButtonScan = (Button) view.findViewById(R.id.btn_scan);mLoadMoreListViewContainer = (LoadMoreListViewContainer) view.findViewById(R.id.lmlvc);mPtrClassicFrameLayout = (PtrClassicFrameLayout) view.findViewById(R.id.pcfl);mListView = (ListView) view.findViewById(R.id.lv);}private void loadData() {new Thread(new Runnable(){@Overridepublic void run() {// TODO Auto-generated method stubApp app = (App)getActivity().getApplication();Seller seller = app.getSeller();ApiOrder apiOrder = new ApiOrder();ApiOrderItem apiOrderItem = new ApiOrderItem();try {mOrderExs = new ArrayList<OrderEx>();mOrderItemExs = new SparseArray<OrderItemEx[]>();mPageNumber = 1;mTotalCount = apiOrder.getCount(seller.UserAccount, mCanteenNo);OrderEx[] listOrderEx = apiOrder.getPagedList(seller.UserAccount, mCanteenNo, PAGE_SIZE, mPageNumber);for (OrderEx modelOrderEx : listOrderEx) {mOrderExs.add(modelOrderEx);OrderItemEx[] listOrderItemEx = apiOrderItem.getListByOrder(modelOrderEx.No);mOrderItemExs.put(modelOrderEx.No, listOrderItemEx);}sendMessage(R.id.msg_load);} catch (IOException ex) {sendMessage(R.id.msg_network_disconnect);} catch (ApiException ex) {sendMessage(R.id.msg_network_error, ex.getMessage());}}}).start();}private void loadDataMore() {new Thread(new Runnable(){@Overridepublic void run() {// TODO Auto-generated method stubApp app = (App)getActivity().getApplication();Seller seller = app.getSeller();ApiOrder apiOrder = new ApiOrder();ApiOrderItem apiOrderItem = new ApiOrderItem();try {mPageNumber++;mTotalCount = apiOrder.getCount(seller.UserAccount, mCanteenNo);OrderEx[] listOrderEx = apiOrder.getPagedList(seller.UserAccount, mCanteenNo, PAGE_SIZE, mPageNumber);for (OrderEx modelOrderEx : listOrderEx) {mOrderExs.add(modelOrderEx);OrderItemEx[] listOrderItemEx = apiOrderItem.getListByOrder(modelOrderEx.No);mOrderItemExs.put(modelOrderEx.No, listOrderItemEx);}sendMessage(R.id.msg_load_more, listOrderEx.length);} catch (IOException ex) {sendMessage(R.id.msg_network_disconnect);} catch (ApiException ex) {sendMessage(R.id.msg_network_error, ex.getMessage());}}}).start();}private void showData(boolean append) {if (append) {mAdapter.notifyDataSetChanged();} else {mAdapter = new OrderExAdapter(getActivity(), mOrderExs, mOrderItemExs);mListView.setAdapter(mAdapter);}}}





更多相关文章

  1. Android一种欢迎界面全屏显示方法
  2. Android(安卓)EditText用户友好的输入界面
  3. 渐显启动界面.md
  4. Android登录界面设计1(纯java)
  5. Andorid中Fragment简单切换案例
  6. Android在Service服务中调用Activity活动的方法,实现UI界面更新操
  7. Android课程表界面布局实现
  8. Android(安卓)Studio实现简单的购物商城界面
  9. Android程序开发初级教程(二)

随机推荐

  1. android:taskAffinity与android:finishOn
  2. Android使用Itext生成pdf文件
  3. Android实现多行文字的跑马灯效果(Realizi
  4. 奔五的人,准备学习iOS开发
  5. 剑桥大学研究人员称,Android的安全性堪忧
  6. [Android问答] px、dp和sp,这些单位有什么
  7. Android 9.0 WiFi BG Scan机制
  8. Android ListView 滑动背景为黑色的解决
  9. android之首选项相关 Preferences(一) (转)
  10. Android与蓝牙串口模块通信