您的位置:首页 > Web前端 > CSS

Pagerstwich tab样式加下拉刷新(三)

2015-09-19 10:55 603 查看
例子和上面的两个是同一个,这次主要是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实现的类通过文件传上去。以及其中的一些类。。


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: