无限轮播+XListView
来源:互联网 发布:小田切让 知乎 编辑:程序博客网 时间:2024/06/05 03:27
public class Fragment02 extends Fragment implements XListView.IXListViewListener{
String path ="http://www.meirixue.com/api.php?c=index&a=index";
private XListView xlv;
private LinearLayout ll;
private ViewPager vp;
private MyPagetAdapter pagetAdapter;
private MyBaseAdapter baseAdapter;
private List<Data_f2.DataBean.HotcategoryBean> hotcategory;
private List<Data_f2.DataBean.AdlistBean> adlist;
private List<Data_f2.DataBean.HotcategoryBean> hotcategory1= new ArrayList<>();
private List<Data_f2.DataBean.AdlistBean> adlist1= new ArrayList<>();
private List<ImageView> listiv;
String path ="http://www.meirixue.com/api.php?c=index&a=index";
private XListView xlv;
private LinearLayout ll;
private ViewPager vp;
private MyPagetAdapter pagetAdapter;
private MyBaseAdapter baseAdapter;
private List<Data_f2.DataBean.HotcategoryBean> hotcategory;
private List<Data_f2.DataBean.AdlistBean> adlist;
private List<Data_f2.DataBean.HotcategoryBean> hotcategory1= new ArrayList<>();
private List<Data_f2.DataBean.AdlistBean> adlist1= new ArrayList<>();
private List<ImageView> listiv;
private Handler handler=new Handler(){
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//得到当前的下标
int currentItem = vp.getCurrentItem();
currentItem++;
vp.setCurrentItem(currentItem);
sendMsg();
@Override
public void handleMessage(Message msg) {
super.handleMessage(msg);
//得到当前的下标
int currentItem = vp.getCurrentItem();
currentItem++;
vp.setCurrentItem(currentItem);
sendMsg();
}
};
};
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View view=inflater.inflate(R.layout.fragment02,null);
xlv = (XListView) view.findViewById(R.id.f2_xlv);
return view;
}
@Override
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//SD卡读写
DisplayImageOptions options=new DisplayImageOptions.Builder()
.cacheOnDisk(true)
.cacheInMemory(true)
.build();
initData();
xlv.setXListViewListener(Fragment02.this);
xlv.setPullLoadEnable(true);
baseAdapter = new MyBaseAdapter();
public void onActivityCreated(@Nullable Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
//SD卡读写
DisplayImageOptions options=new DisplayImageOptions.Builder()
.cacheOnDisk(true)
.cacheInMemory(true)
.build();
initData();
xlv.setXListViewListener(Fragment02.this);
xlv.setPullLoadEnable(true);
baseAdapter = new MyBaseAdapter();
//ViewPager的布局
View view=View.inflate(getActivity(),R.layout.f2_vp_item,null);
vp = (ViewPager) view.findViewById(R.id.f2_vp);
ll = (LinearLayout) view.findViewById(R.id.f2_ll);
//给XListview加载头布局
xlv.addHeaderView(view);
pagetAdapter = new MyPagetAdapter();
vp.setCurrentItem(100000);
//无限轮播
sendMsg();
//对ViewPager添加监听
vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
View view=View.inflate(getActivity(),R.layout.f2_vp_item,null);
vp = (ViewPager) view.findViewById(R.id.f2_vp);
ll = (LinearLayout) view.findViewById(R.id.f2_ll);
//给XListview加载头布局
xlv.addHeaderView(view);
pagetAdapter = new MyPagetAdapter();
vp.setCurrentItem(100000);
//无限轮播
sendMsg();
//对ViewPager添加监听
vp.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
public void onPageSelected(int position) {
for (int i =0;i<listiv.size();i++){
if(position%adlist1.size()==i){
listiv.get(position%adlist.size()).setImageResource(R.drawable.dot_focuable);
}else {
listiv.get(i).setImageResource(R.drawable.dot_normal);
}
}
if(position%adlist1.size()==i){
listiv.get(position%adlist.size()).setImageResource(R.drawable.dot_focuable);
}else {
listiv.get(i).setImageResource(R.drawable.dot_normal);
}
}
}
@Override
public void onPageScrollStateChanged(int state) {
public void onPageScrollStateChanged(int state) {
}
});
}
});
}
private void initData() {
new AsyncTask<String,Void,String>(){
new AsyncTask<String,Void,String>(){
@Override
protected void onPreExecute() {
super.onPreExecute();
}
protected void onPreExecute() {
super.onPreExecute();
}
@Override
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson =new Gson();
Data_f2 data_f2 = gson.fromJson(s, Data_f2.class);
//展示viewpager图片的集合
adlist = data_f2.getData().getAdlist();
//展示xlistview数据的集合
hotcategory = data_f2.getData().getHotcategory();
protected void onPostExecute(String s) {
super.onPostExecute(s);
Gson gson =new Gson();
Data_f2 data_f2 = gson.fromJson(s, Data_f2.class);
//展示viewpager图片的集合
adlist = data_f2.getData().getAdlist();
//展示xlistview数据的集合
hotcategory = data_f2.getData().getHotcategory();
adlist1.addAll(adlist);
hotcategory1.addAll(hotcategory);
hotcategory1.addAll(hotcategory);
xlv.setAdapter(baseAdapter);
vp.setAdapter(pagetAdapter);
vp.setAdapter(pagetAdapter);
pagetAdapter.notifyDataSetChanged();
baseAdapter.notifyDataSetChanged();
baseAdapter.notifyDataSetChanged();
//初始化点
initDot();
initDot();
}
@Override
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
protected void onProgressUpdate(Void... values) {
super.onProgressUpdate(values);
}
@Override
protected String doInBackground(String... params) {
//获取Json串
try {
URL url=new URL(params[0]);
HttpURLConnection urlConnection= (HttpURLConnection) url.openConnection();
int responseCode = urlConnection.getResponseCode();
if(responseCode==200){
InputStream inputStream = urlConnection.getInputStream();
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
StringBuilder stringBuilder=new StringBuilder();
String stringTemp="";
while((stringTemp=bufferedReader.readLine())!=null){
stringBuilder.append(stringTemp);
}
String result = stringBuilder.toString();
return result;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
protected String doInBackground(String... params) {
//获取Json串
try {
URL url=new URL(params[0]);
HttpURLConnection urlConnection= (HttpURLConnection) url.openConnection();
int responseCode = urlConnection.getResponseCode();
if(responseCode==200){
InputStream inputStream = urlConnection.getInputStream();
BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(inputStream));
StringBuilder stringBuilder=new StringBuilder();
String stringTemp="";
while((stringTemp=bufferedReader.readLine())!=null){
stringBuilder.append(stringTemp);
}
String result = stringBuilder.toString();
return result;
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}.execute(path);
}
//无限轮播
private void sendMsg() {
handler.sendEmptyMessageDelayed(1,2000);
}
}
//无限轮播
private void sendMsg() {
handler.sendEmptyMessageDelayed(1,2000);
}
//初始化点
private void initDot() {
listiv = new ArrayList<>();
if(listiv!=null){
listiv.clear();
}
//清除LinearLayout里的所有控件
ll.removeAllViews();
for(int i=0;i<adlist1.size();i++){
ImageView iv=new ImageView(getActivity());
if(i==0){
iv.setImageResource(R.drawable.dot_focuable);
}else {
iv.setImageResource(R.drawable.dot_normal);
}
private void initDot() {
listiv = new ArrayList<>();
if(listiv!=null){
listiv.clear();
}
//清除LinearLayout里的所有控件
ll.removeAllViews();
for(int i=0;i<adlist1.size();i++){
ImageView iv=new ImageView(getActivity());
if(i==0){
iv.setImageResource(R.drawable.dot_focuable);
}else {
iv.setImageResource(R.drawable.dot_normal);
}
listiv.add(iv);
LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(20,20);
params.setMargins(10,0,10,0);
ll.addView(iv,params);
}
}
LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(20,20);
params.setMargins(10,0,10,0);
ll.addView(iv,params);
}
}
public void onlond(){
xlv.stopLoadMore();
xlv.stopRefresh();
xlv.setRefreshTime("完美");
}
xlv.stopLoadMore();
xlv.stopRefresh();
xlv.setRefreshTime("完美");
}
@Override
public void onRefresh() {
adlist1.clear();
hotcategory1.clear();
listiv.clear();
initData();
onlond();
public void onRefresh() {
adlist1.clear();
hotcategory1.clear();
listiv.clear();
initData();
onlond();
}
@Override
public void onLoadMore() {
handler.postDelayed(new Runnable() {
@Override
public void run() {
initData();
baseAdapter.notifyDataSetChanged();
pagetAdapter.notifyDataSetChanged();
onlond();
}
},2000);
public void onLoadMore() {
handler.postDelayed(new Runnable() {
@Override
public void run() {
initData();
baseAdapter.notifyDataSetChanged();
pagetAdapter.notifyDataSetChanged();
onlond();
}
},2000);
}
//XListview的适配器
class MyBaseAdapter extends BaseAdapter{
class MyBaseAdapter extends BaseAdapter{
@Override
public int getCount() {
return hotcategory1.size();
}
public int getCount() {
return hotcategory1.size();
}
@Override
public Object getItem(int position) {
return hotcategory1.get(position);
}
public Object getItem(int position) {
return hotcategory1.get(position);
}
@Override
public long getItemId(int position) {
return position;
}
public long getItemId(int position) {
return position;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
convertView=View.inflate(getActivity(),R.layout.f2_item,null);
ImageView img= (ImageView) convertView.findViewById(R.id.f2_it_img);
TextView tv= (TextView) convertView.findViewById(R.id.f2_it_tv);
tv.setText(hotcategory1.get(position).getCname());
ImageLoader.getInstance().displayImage(hotcategory1.get(position).getImg(),img);
return convertView;
}
}
//ViewPager的适配器
class MyPagetAdapter extends PagerAdapter{
public View getView(int position, View convertView, ViewGroup parent) {
convertView=View.inflate(getActivity(),R.layout.f2_item,null);
ImageView img= (ImageView) convertView.findViewById(R.id.f2_it_img);
TextView tv= (TextView) convertView.findViewById(R.id.f2_it_tv);
tv.setText(hotcategory1.get(position).getCname());
ImageLoader.getInstance().displayImage(hotcategory1.get(position).getImg(),img);
return convertView;
}
}
//ViewPager的适配器
class MyPagetAdapter extends PagerAdapter{
@Override
public int getCount() {
return Integer.MAX_VALUE;
}
public int getCount() {
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
public boolean isViewFromObject(View view, Object object) {
return view==object;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
ImageView iv=new ImageView(getActivity());
ImageLoader.getInstance().displayImage(adlist1.get(position%adlist1.size()).getImg(),iv);
container.addView(iv);
return iv;
}
}
public Object instantiateItem(ViewGroup container, int position) {
ImageView iv=new ImageView(getActivity());
ImageLoader.getInstance().displayImage(adlist1.get(position%adlist1.size()).getImg(),iv);
container.addView(iv);
return iv;
}
}
}
阅读全文
0 0
- 无限轮播+XListView
- xlistview+banner无限轮播
- fragment+Xlistview+viewpager无限轮播+imageloader
- Fragment+Fragment上的自动无限轮播+XListView
- 轮播和Xlistview
- 轮播+跳转+xlistview
- ViewPager无限轮播中,点击或触摸轮播图停止轮播,XListView添加头部
- XlistView的上拉刷新下拉加载 和Fragment 和无限轮播
- 动漫-无限轮播小圆点+判断网络+网络请求+多条目加载XListView+ImageLoader
- XListview 添加头布局 并实现加点自动无限轮播
- HttpURLConnection网络解析+universalimageloader解析图片+XListView刷新、加载+无限轮播
- 侧滑,无线轮播,Xlistview
- viewpager无限轮播
- 无限轮播加点
- Viewpager无限轮播
- 无限轮播
- 图片无限轮播
- 无限轮播
- 自定义气泡文字背景上下边距总是宽
- 使用RecyclerView实现两种不同Item布局
- C++类构造函数初始化列表
- spring boots JPA 使用MYSQL
- 【模板】树状数组(详解)
- 无限轮播+XListView
- 为微信开发填坑:微信网页支付的开发流程及填坑技巧
- Ambari 2.5.0安装包源码制作流程
- Spark 之 shuffle优化
- Winform的窗体美化心酸路
- IntelliJ:同时选中多列
- H5标签了解
- Unity Sahder 语法及注意事项
- BZOJ 4443: [Scoi2015]小凸玩矩阵 二分 网络流