ViewPagerAdapter类
public class ViewPagerAdapter extends PagerAdapter {
private List<GridView> gridList;
public ViewPagerAdapter() {
gridList = new ArrayList<>();
}
public void add(List<GridView> datas) {
if (gridList.size() > 0) {
gridList.clear();
}
gridList.addAll(datas);
notifyDataSetChanged();
}
@Override
public int getCount() {
return gridList.size();
}
@Override
public int getItemPosition(Object object) {
return POSITION_NONE;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view == object;
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(gridList.get(position));
return gridList.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
}
fragment_layout中viewpager,可参考上一篇,提供了viewpager指示器
<android.support.v4.view.ViewPager
android:id="@+id/activity_viewpager"
android:layout_width="match_parent"
android:layout_height="440dp"
android:layout_marginLeft="12dp"
android:layout_marginRight="12dp"
android:layout_marginTop="2dp">
</android.support.v4.view.ViewPager>
entity类
public class GongXuEntity implements Serializable{
private String content;
private String supplyDemand;
private String city;
public String getCity() {
return city;
}
public void setCity(String city) {
this.city = city;
}
public String getContent() {
return content;
}
public void setContent(String content) {
this.content = content;
}
public String getSupplyDemand() {
return supplyDemand;
}
public void setSupplyDemand(String supplyDemand) {
this.supplyDemand = supplyDemand;
}
}
列表adapter
public class HomeGridViewAdapter extends BaseAdapter {
private List<GongXuEntity> dataList;
public HomeGridViewAdapter(List<GongXuEntity> datas, int page) {
dataList = new ArrayList<>();
//start end分别代表要显示的数组在总数据List中的开始和结束位置
int start = page * HomeFragment.item_grid_num;
int end = start + HomeFragment.item_grid_num;
while ((start < datas.size()) && (start < end)) {
dataList.add(datas.get(start));
start++;
}
}
@Override
public int getCount() {
return dataList.size();
}
@Override
public Object getItem(int i) {
return dataList.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(int i, View itemView, ViewGroup viewGroup) {
ViewHolder mHolder;
if (itemView == null) {
mHolder = new ViewHolder();
itemView = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.item_home_gongxu, viewGroup, false);
mHolder.titlete = (TextView) itemView.findViewById(R.id.item_gxname);
mHolder.typete = (TextView) itemView.findViewById(R.id.item_gongxutype);
mHolder.addresste = (TextView) itemView.findViewById(R.id.item_gongxuaddress);
itemView.setTag(mHolder);
} else {
mHolder = (ViewHolder) itemView.getTag();
}
GongXuEntity bean = dataList.get(i);
if (bean != null) {
// ImageManager.load(viewGroup.getContext(), bean.getImage(), mHolder.iv_img);
String ty ="";
if (bean.getSupplyDemand().equals("0")){
ty="供应";
}else {
ty="需求";
}
mHolder.titlete.setText(bean.getContent());
mHolder.typete.setText(ty);
mHolder.addresste.setText(bean.getCity());
}
return itemView;
}
private class ViewHolder {
private TextView titlete;
private TextView addresste;
private TextView typete;
}
}
fragment的java代码
private ViewPagerAdapter mAdapter;
private List<GridView> gridList = new ArrayList<>();
public static int item_grid_num = 5;//每一页中GridView中item的数量
public static int number_columns = 1;//gridview一行展示的数目
private List<GongXuEntity> mGongXuEntities = new ArrayList<>();
mAdapter = new ViewPagerAdapter();
activity_viewpager.setAdapter(mAdapter);
//圆点指示器
indicator.setVisibility(View.VISIBLE);
indicator.setViewPager(activity_viewpager);
public void getdata(){
mGongXuEntities.add(.......省略);
}
public void showHostsj(){
//计算viewpager一共显示几页
final int pageSize = mGongXuEntities.size() % item_grid_num == 0
? mGongXuEntities.size() / item_grid_num
: mGongXuEntities.size() / item_grid_num + 1;
for (int j = 0; j < pageSize; j++) {
GridView gridView = new GridView(getActivity());
HomeGridViewAdapter adapter = new HomeGridViewAdapter(mGongXuEntities, j);
gridView.setTag(j);
gridView.setNumColumns(number_columns);
gridView.setAdapter(adapter);
gridList.add(gridView);
gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
int index = Integer.parseInt(parent.getTag().toString()) * item_grid_num + position;
//todo
}
});
}
mAdapter.add(gridList);
}