zoukankan      html  css  js  c++  java
  • Pagerstwich tab样式加下拉刷新(三)

    例子和上面的两个是同一个,这次主要是activity的代码

    这段代码主要实现每个list_item格式相同,不同的有点不一样

    public class MyOrderActivity extends BaseActivity implements PagerSwitchListener, ErrorClickListener ,OnPageChangeListener , IXListViewListener{
    
    	@InjectView(id = R.id.back1)
    	private ImageButton back;
    	
    	@InjectView(id = R.id.pagerSwitch)
    	private PagerSwitch pagerSwitch;
    	
    	private String[] titleNames = new String[]{"待付款" , "已付款" , "待评价" ,"待接收"};
    	private int[] pages = new int[]{1,1,1,1};
    	
    	@InjectView(id = R.id.myorder_viewpager)
    	private ViewPager myorder_viewpager;
    	
    	private List<View> pager;
    	private List<XListView> lists;
    	private List<LoadView> loadViews;
    	private List<MyorderAdapter> adapters;
    	
    	
    	private List<MyorderInfo> firstList;
    	private List<MyorderInfo> secondList;
    	private List<MyorderInfo> thirdList;
    	private List<MyorderInfo> fourList;      //前面model好像粘贴错了,,,懂就好,,,一点点差别
    	
    	private int testNum = 1;
    	
    	@Override
    	protected void onCreate(Bundle savedInstanceState) {
    		// TODO Auto-generated method stub
    		super.onCreate(savedInstanceState);
    		setContentView(R.layout.my_order);
    		pagerSwitch.init(titleNames);
    		pagerSwitch.setSelect(0);
    		pagerSwitch.setPagerSwitchListener(this);
    		
    		initPager();                                        
    		loadListFromLoadView(0);
    		loadListFromLoadView(1);
    		loadListFromLoadView(2);
    		loadListFromLoadView(3);
    	}
    	private void initPager() {
    		// TODO Auto-generated method stub
    		pager = new ArrayList<View>(4);
    		lists = new ArrayList<XListView>(4);
    		loadViews = new ArrayList<LoadView>(4);
    		adapters = new ArrayList<MyorderAdapter>(3);
    		
    		firstList = new ArrayList<MyorderInfo>();
    		secondList = new ArrayList<MyorderInfo>();
    		thirdList = new ArrayList<MyorderInfo>();
    		fourList = new ArrayList<MyorderInfo>();
    		
    		View pager1 = LayoutInflater.from(this).inflate(R.layout.common_list, null);
    		XListView list1 = (XListView)pager1.findViewById(R.id.xlistView);
    		LoadView loadView1 = (LoadView)pager1.findViewById(R.id.loadView);
    		loadView1.setErrorClickListener(this);                                          //public Interface ErrorClicklistener{
    		MyorderAdapter adapters1 = new MyorderAdapter(this,firstList);                  //     public reload(int type);                           
    		list1.setAdapter(adapters1, 0);                                                 //}
    		list1.setXListViewListener(this);
    		lists.add(list1);
    		loadViews.add(loadView1);
    		adapters.add(adapters1);
    		pager.add(pager1);
    		
    		View pager2 = LayoutInflater.from(this).inflate(R.layout.common_list, null);
    		XListView list2 = (XListView)pager2.findViewById(R.id.xlistView);
    		LoadView loadView2 = (LoadView)pager2.findViewById(R.id.loadView);
    		loadView2.setErrorClickListener(this);
    		MyorderAdapter adapters2 = new MyorderAdapter(this,secondList);
    		list2.setAdapter(adapters2, 1);
    		list2.setXListViewListener(this);
    		lists.add(list2);
    		loadViews.add(loadView2);
    		adapters.add(adapters2);
    		pager.add(pager2);
    		
    		View pager3 = LayoutInflater.from(this).inflate(R.layout.common_list, null);
    		XListView list3 = (XListView)pager3.findViewById(R.id.xlistView);
    		LoadView loadView3 = (LoadView)pager3.findViewById(R.id.loadView);
    		loadView3.setErrorClickListener(this);
    		MyorderAdapter adapters3 = new MyorderAdapter(this,thirdList);
    		list3.setAdapter(adapters3, 2);
    		list3.setXListViewListener(this);
    		lists.add(list3);
    		loadViews.add(loadView3);
    		adapters.add(adapters3);
    		pager.add(pager3);
    		
    		View pager4 = LayoutInflater.from(this).inflate(R.layout.common_list, null);
    		XListView list4 = (XListView)pager4.findViewById(R.id.xlistView);
    		LoadView loadView4 = (LoadView)pager4.findViewById(R.id.loadView);
    		loadView4.setErrorClickListener(this);
    		MyorderAdapter adapters4 = new MyorderAdapter(this , fourList);
    		list4.setAdapter(adapters4, 3);
    		list4.setXListViewListener(this);
    		lists.add(list4);
    		loadViews.add(loadView4);
    		adapters.add(adapters4);
    		pager.add(pager4);
    		
    		myorder_viewpager.setAdapter(new ListPagerAdapter(pager));
    		myorder_viewpager.setOnPageChangeListener(this);
    	}
    	private void loadListFromLoadView(final int position) {
    		lists.get(position).setPullLoadEnable(false);
    		lists.get(position).setPullRefreshEnable(false);
    		loadViews.get(position).startLoad();
            baseHandler.postDelayed(new Runnable() {
    
    			@Override
    			public void run() {
    				// TODO Auto-generated method stub
    				if (testNum == 1) {
    					if(position == 0){
    						firstList.addAll(MyorderInfo.getTest());
    					}
    					else if(position == 1){
    						secondList.addAll(MyorderInfo.getTest());
    					}
    					else if(position == 2){
    						thirdList.addAll(MyorderInfo.getTest());
    					}else
    					{
    						fourList.addAll(MyorderReceiveInfo.getTest());
    					}
    					
    					
    					
    					
    					
    					if(position ==3)
    					{
    						adapters4.notifyDataSetChanged();
    					}
    					else
    				    {
    						adapters.get(position).notifyDataSetChanged();
    				    }
    				    
    					
    					loadViews.get(position).loadDone();
    
    					lists.get(position).setPullLoadEnable(true);
    					lists.get(position).setPullRefreshEnable(true);
    				} else {
    					loadViews.get(position).loadError(position);
    					testNum++;
    				}
    
    			}
    		}, 1000);
    	}
    
    	private void loadList(final int position , final boolean isLoadMore) {
    		if (isLoadMore) {
    			lists.get(position).setPullRefreshEnable(false);
    		} else {
    			lists.get(position).setPullLoadEnable(false);
    		}
    
    		baseHandler.postDelayed(new Runnable() {
    
    			@Override
    			public void run() {
    				// TODO Auto-generated method stub
    				if(position == 0){
    					firstList.addAll(MyorderInfo.getTest());
    				}
    				else if(position == 1){
    					secondList.addAll(MyorderInfo.getTest());
    				}else if(position == 2){
    					thirdList.addAll(MyorderInfo.getTest());
    				}else
    				{
    					fourList.addAll(MyorderReceiveInfo.getTest());
    				}
    				
    				if(position ==3)
    				{
    					adapters4.notifyDataSetChanged();
    				}
    				else
    			    {
    					adapters.get(position).notifyDataSetChanged();
    			    }
    
    				lists.get(position).stopLoadMore();
    				lists.get(position).stopRefresh();
    				if (isLoadMore) {
    					lists.get(position).setPullRefreshEnable(true);
    				} else {
    					lists.get(position).setPullLoadEnable(true);
    				}
    			}
    		}, 1000);
    	}
    	@Override
    	public void onClick(View v) {
    		// TODO Auto-generated method stub
    		switch (v.getId()) {
    		
    		case R.id.back1:
    			AppManager.getAppManager().finishActivity();
    			break;
    		default:
    			break;
    		}
    	}
    
    	@Override
    	public void onRefresh(int type) {                                               //为了区分每一个选项下的List
    		// TODO Auto-generated method stub
    		pages[type] = 1;
    		if(type == 0){
    			firstList.clear();
    		}else if(type == 1){
    			secondList.clear();
    		}else if(type == 2){
    			thirdList.clear();
    		}else
    		{
    			fourList.clear();
    			
    		}
    		if(type ==3)
    		{
    			adapters4.notifyDataSetChanged();
    		}
    		else
    	    {
    			adapters.get(type).notifyDataSetChanged();
    	    }
    	    
    		loadList(type , false);
    		lists.get(type).setRefreshTime(StringUtil.getNowTime());
    	}
    
    	@Override
    	public void onLoadMore(int type) {
    		// TODO Auto-generated method stub
    		pages[type] ++;
            loadList(type , true);
    	}
    
    	@Override
    	public void onPageScrollStateChanged(int arg0) {
    		// TODO Auto-generated method stub
    		
    	}
    
    	@Override
    	public void onPageScrolled(int arg0, float arg1, int arg2) {
    		// TODO Auto-generated method stub
    		
    	}
    
    	@Override
    	public void onPageSelected(int arg0) {
    		// TODO Auto-generated method stub
    		pagerSwitch.setSelect(arg0);                      //
    	}
    
    	@Override
    	public void reload(int type) {                            //ErrorClickListener中实现的方法
    		// TODO Auto-generated method stub
    		loadListFromLoadView(type);
    	}
    
    	@Override
    	public void pagerChanged(int position) {                  //PagerSwitchListener中实现的方法
    		// TODO Auto-generated method stub
    		myorder_viewpager.setCurrentItem(position, true);
    	}
    
    	@Override
    	protected void initView() {
    		// TODO Auto-generated method stub
    		
    	}
    
    	@Override
    	protected void setOnClickListener() {
    		// TODO Auto-generated method stub
    		back.setOnClickListener(this);
    	}
    
    	@Override
    	protected void refresh(Object... param) {
    		// TODO Auto-generated method stub
    		
    	}
    
    }

     


    R.layout.common_list布局

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent" >
        
        <com.driving.client.widget.xlistView.XListView
            android:id="@+id/xlistView"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:cacheColorHint="@android:color/transparent"
            android:divider="#00000000"
            android:clickable="false"
            android:listSelector="@android:color/transparent" >
        </com.driving.client.widget.xlistView.XListView>
    	    
    	    <com.driving.client.widget.LoadView 
           		android:id="@+id/loadView"
           		android:layout_height="fill_parent"
           		android:layout_width="fill_parent"
           ></com.driving.client.widget.LoadView>
    
    </RelativeLayout>



    最后我把XListView实现的类通过文件传上去。以及其中的一些类。。



    
  • 相关阅读:
    关系型数据库vs非关系型数据库
    Vue使用日常记录
    【0805作业】模拟接力赛跑
    【0805作业】模拟叫号看病
    【0805作业】模拟多人爬山
    【0805作业】实现Runnable接口的方式创建线程
    【0805作业】继承Thread类创建线程,输出20次数字,“你好”,线程名
    超市会员管理系统
    【0802作业】循环注册十个账号,重启程序能正常登录
    【0802作业】复制图片
  • 原文地址:https://www.cnblogs.com/peterleee/p/9373787.html
Copyright © 2011-2022 走看看