ViewPager无限轮播加XListview加载
来源:互联网 发布:金山恢复数据在哪里 编辑:程序博客网 时间:2024/06/05 07:33
package com.bwei.lx;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import view.XListView;
import view.XListView.IXListViewListener;
import bean.News;
import bean.NewsData;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import android.os.AsyncTask;
import android.os.Bundle;
import android.provider.ContactsContract.Contacts.Data;
import android.app.ActionBar.LayoutParams;
import android.app.Activity;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MainActivity extends Activity {
ViewPager vp;
LinearLayout line;
ArrayList<Integer> list=new ArrayList<Integer>();
private MyAdapter adapter;
XListView lv;
NewsData data;
MyBaseAdapter adapter2;
List<News> list_news;
private int n=2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vp=(ViewPager) findViewById(R.id.vp);
lv=(XListView) findViewById(R.id.lv);
line=(LinearLayout) findViewById(R.id.line);
list_news=new ArrayList<News>();
initData();
ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(MainActivity.this);
ImageLoader.getInstance().init(configuration);
//添加小圆点
indoc();
adapter = new MyAdapter();
adapter2=new MyBaseAdapter();
lv.setAdapter(adapter2);
vp.setAdapter(adapter);
vp.setCurrentItem(10000*list.size());
lv.setPullRefreshEnable(true);
lv.setPullLoadEnable(true);
lv.setXListViewListener(new IXListViewListener() {
@Override
public void onRefresh() {
initData1();
adapter2.notifyDataSetChanged();
lv.stopRefresh();
}
@Override
public void onLoadMore() {
n++;
initData1();
lv.stopRefresh();
}
});
vp.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
for (int i = 0; i < line.getChildCount(); i++) {
ImageView im=(ImageView) line.getChildAt(i);
if(i==arg0%list.size())
{
im.setImageResource(R.drawable.slidingr);
}
else {
im.setImageResource(R.drawable.sliding);
}
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
initData1();
}
private void initData1() {
new AsyncTask<String, String, String>() {
@Override
protected String doInBackground(String... params) {
getData();
return null;
}
@Override
protected void onPostExecute(String result) {
adapter2.notifyDataSetChanged();
super.onPostExecute(result);
}
}.execute();
}
private void indoc() {
for (int i = 0; i < list.size(); i++) {
ImageView iv=new ImageView(MainActivity.this);
if(i==0)
{
iv.setImageResource(R.drawable.slidingr);
}
else {
iv.setImageResource(R.drawable.sliding);
}
LayoutParams params=new LayoutParams(20,20);
params.setMargins(0, 0, 5, 0);
line.addView(iv,params);
}
}
private void getData() {
try {
URL url=new URL("https://news-at.zhihu.com/api/4/news/latest");
HttpURLConnection connection=(HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
int code=connection.getResponseCode();
if(code==200)
{
Gson gson=new Gson();
data=gson.fromJson(new InputStreamReader(connection.getInputStream(),"UTF-8"), NewsData.class);
if(n!=1)
{
list_news.addAll(data.getStories());
}
else {
list_news=data.getStories();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void initData() {
list.add(R.drawable.a);
list.add(R.drawable.b);
list.add(R.drawable.c);
list.add(R.drawable.d);
}
class MyAdapter extends PagerAdapter{
@Override
public int getCount() {
// TODO Auto-generated method stub
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0==arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View view=View.inflate(MainActivity.this, R.layout.item, null);
ImageView img=(ImageView) view.findViewById(R.id.img);
img.setImageResource(list.get(position%list.size()));
container.addView(view);
return view;
}
}
class MyBaseAdapter extends BaseAdapter{
@Override
public int getCount() {
if(data!=null)
{
return data.getStories().size();
}
return 0;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView==null)
{
convertView=View.inflate(MainActivity.this, R.layout.list_item, null);
holder=new ViewHolder();
holder.tv_title=(TextView) convertView.findViewById(R.id.tv_title);
holder.tv_desc=(TextView) convertView.findViewById(R.id.tv_desc);
holder.iv=(ImageView) convertView.findViewById(R.id.iv);
convertView.setTag(holder);
}
else {
holder=(ViewHolder) convertView.getTag();
}
holder.tv_title.setText(data.getStories().get(position).getTitle());
holder.tv_desc.setText(data.getStories().get(position).getGa_prefix());
ImageLoader.getInstance().displayImage(data.getStories().get(position).getImages().get(0), holder.iv);
return convertView;
}
class ViewHolder{
ImageView iv;
TextView tv_title,tv_desc;
}
}
}
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.util.ArrayList;
import java.util.List;
import view.XListView;
import view.XListView.IXListViewListener;
import bean.News;
import bean.NewsData;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;
import android.os.AsyncTask;
import android.os.Bundle;
import android.provider.ContactsContract.Contacts.Data;
import android.app.ActionBar.LayoutParams;
import android.app.Activity;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.support.v4.view.ViewPager.OnPageChangeListener;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.TextView;
public class MainActivity extends Activity {
ViewPager vp;
LinearLayout line;
ArrayList<Integer> list=new ArrayList<Integer>();
private MyAdapter adapter;
XListView lv;
NewsData data;
MyBaseAdapter adapter2;
List<News> list_news;
private int n=2;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
vp=(ViewPager) findViewById(R.id.vp);
lv=(XListView) findViewById(R.id.lv);
line=(LinearLayout) findViewById(R.id.line);
list_news=new ArrayList<News>();
initData();
ImageLoaderConfiguration configuration = ImageLoaderConfiguration.createDefault(MainActivity.this);
ImageLoader.getInstance().init(configuration);
//添加小圆点
indoc();
adapter = new MyAdapter();
adapter2=new MyBaseAdapter();
lv.setAdapter(adapter2);
vp.setAdapter(adapter);
vp.setCurrentItem(10000*list.size());
lv.setPullRefreshEnable(true);
lv.setPullLoadEnable(true);
lv.setXListViewListener(new IXListViewListener() {
@Override
public void onRefresh() {
initData1();
adapter2.notifyDataSetChanged();
lv.stopRefresh();
}
@Override
public void onLoadMore() {
n++;
initData1();
lv.stopRefresh();
}
});
vp.setOnPageChangeListener(new OnPageChangeListener() {
@Override
public void onPageSelected(int arg0) {
for (int i = 0; i < line.getChildCount(); i++) {
ImageView im=(ImageView) line.getChildAt(i);
if(i==arg0%list.size())
{
im.setImageResource(R.drawable.slidingr);
}
else {
im.setImageResource(R.drawable.sliding);
}
}
}
@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {
// TODO Auto-generated method stub
}
@Override
public void onPageScrollStateChanged(int arg0) {
// TODO Auto-generated method stub
}
});
initData1();
}
private void initData1() {
new AsyncTask<String, String, String>() {
@Override
protected String doInBackground(String... params) {
getData();
return null;
}
@Override
protected void onPostExecute(String result) {
adapter2.notifyDataSetChanged();
super.onPostExecute(result);
}
}.execute();
}
private void indoc() {
for (int i = 0; i < list.size(); i++) {
ImageView iv=new ImageView(MainActivity.this);
if(i==0)
{
iv.setImageResource(R.drawable.slidingr);
}
else {
iv.setImageResource(R.drawable.sliding);
}
LayoutParams params=new LayoutParams(20,20);
params.setMargins(0, 0, 5, 0);
line.addView(iv,params);
}
}
private void getData() {
try {
URL url=new URL("https://news-at.zhihu.com/api/4/news/latest");
HttpURLConnection connection=(HttpURLConnection) url.openConnection();
connection.setRequestMethod("GET");
int code=connection.getResponseCode();
if(code==200)
{
Gson gson=new Gson();
data=gson.fromJson(new InputStreamReader(connection.getInputStream(),"UTF-8"), NewsData.class);
if(n!=1)
{
list_news.addAll(data.getStories());
}
else {
list_news=data.getStories();
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
private void initData() {
list.add(R.drawable.a);
list.add(R.drawable.b);
list.add(R.drawable.c);
list.add(R.drawable.d);
}
class MyAdapter extends PagerAdapter{
@Override
public int getCount() {
// TODO Auto-generated method stub
return Integer.MAX_VALUE;
}
@Override
public boolean isViewFromObject(View arg0, Object arg1) {
// TODO Auto-generated method stub
return arg0==arg1;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((View) object);
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
View view=View.inflate(MainActivity.this, R.layout.item, null);
ImageView img=(ImageView) view.findViewById(R.id.img);
img.setImageResource(list.get(position%list.size()));
container.addView(view);
return view;
}
}
class MyBaseAdapter extends BaseAdapter{
@Override
public int getCount() {
if(data!=null)
{
return data.getStories().size();
}
return 0;
}
@Override
public Object getItem(int position) {
// TODO Auto-generated method stub
return null;
}
@Override
public long getItemId(int position) {
// TODO Auto-generated method stub
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ViewHolder holder;
if(convertView==null)
{
convertView=View.inflate(MainActivity.this, R.layout.list_item, null);
holder=new ViewHolder();
holder.tv_title=(TextView) convertView.findViewById(R.id.tv_title);
holder.tv_desc=(TextView) convertView.findViewById(R.id.tv_desc);
holder.iv=(ImageView) convertView.findViewById(R.id.iv);
convertView.setTag(holder);
}
else {
holder=(ViewHolder) convertView.getTag();
}
holder.tv_title.setText(data.getStories().get(position).getTitle());
holder.tv_desc.setText(data.getStories().get(position).getGa_prefix());
ImageLoader.getInstance().displayImage(data.getStories().get(position).getImages().get(0), holder.iv);
return convertView;
}
class ViewHolder{
ImageView iv;
TextView tv_title,tv_desc;
}
}
}
阅读全文
0 0
- ViewPager无限轮播加XListview加载
- fragment+Xlistview+viewpager无限轮播+imageloader
- ViewPager+Fragment实现无限加载
- XListView+ViewPager
- viewpager无限轮播加shape
- ViewPager网络加载图片+无限轮播
- ViewPager加载图片自动无限轮播
- XlistView 加载头部ViewPager 网络请求数据 存入数据库
- ViewPager无限轮播中,点击或触摸轮播图停止轮播,XListView添加头部
- 网络数据请求展示为无限轮播图 ViewPager+XListView+Fragment+ImageLoader
- 无限轮播+XListView
- Viewpager无限轮播加小圆点
- ViewPager无限轮播加数据展示
- viewpager无限轮播加小圆点
- TabLayout+ViewPager无限轮播加小圆点,XRecyclerView下拉刷新,加载更多
- ViewPager+Fragment(延时加载)+XListView(下拉刷新)+ViewPager(自动循环)嵌套
- Viewpager+XListView+Internet
- ViewPager,XListView主Activity
- js限制用户只能输入数字
- 非wifi用户选择网络
- 菜鸟笔记--软件测试得框架表示
- JDBC入门(二)工具类封装
- 二分图
- ViewPager无限轮播加XListview加载
- protocol buffer介绍(protobuf)
- mysql学习笔记
- XML_Dom4J配合XPath
- Myapp
- submit与execute区别
- 解决Mac下brew安装MySQL后不知道密码,无法登陆
- Linux 基础:如何在Ubuntu上检查一个软件包是否安装
- 懒加载和预加载