public class LoginActivity extends AppCompatActivity { private PullToRefreshScrollView pst; private int pathtype=10; private String path="http://api.tianapi.com/social/?key=35f63c08e9b14e43c20eb253ca096dd2&num="+pathtype; private int types=1; private Mylistview mylistview; private ArrayList<ResuleDatas.NewslistBean> newdatas; private MyAdaper adaper; private List<ResuleDatas.NewslistBean> newslist; private LinearLayout imageout; private List<String> lists=new ArrayList<String>(); private List<ImageView> images=new ArrayList<>(); private ViewPager pager0; private Handler handler=new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); //接收消息 int getmes=pager0.getCurrentItem(); getmes++; //再次添加 pager0.setCurrentItem(getmes); //调用小圆点 setyuandian(getmes%images.size()); //再次发送消息 handler.sendEmptyMessageDelayed(1,1000); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_login); pst=findViewById(R.id.pts); mylistview=findViewById(R.id.myviews); newdatas =new ArrayList<ResuleDatas.NewslistBean>(); imageout=findViewById(R.id.imageout); pager0=findViewById(R.id.page0); //初始化数据 setDatas(); //刷新加载数据 shuaxin(); } private void setDatas() { MyTaas myTaas=new MyTaas(); myTaas.execute(path); } class MyTaas extends AsyncTask<String,Integer,String>{ @Override protected String doInBackground(String... strings) { HttpClient httpClient=new DefaultHttpClient(); HttpGet httpGet=new HttpGet(strings[0]); try { HttpResponse response = httpClient.execute(httpGet); if(response.getStatusLine().getStatusCode()==200){ HttpEntity entity = response.getEntity(); String s = EntityUtils.toString(entity); return s; } } catch (IOException e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { super.onPostExecute(s); Gson gson=new Gson(); ResuleDatas resuleDatas = gson.fromJson(s, ResuleDatas.class); newslist = resuleDatas.getNewslist(); //刷新后只保留第一页数据 if(types==1){ newdatas.clear(); } newdatas.addAll(newslist); setadaper(); //关闭头尾布局 pst.onRefreshComplete(); //得到网络上的图片 getimages(newslist); } } private void getimages(List<ResuleDatas.NewslistBean> newslist) { //添加之前先清除 lists.clear(); lists.add(newslist.get(0).getPicUrl()); lists.add(newslist.get(1).getPicUrl()); lists.add(newslist.get(2).getPicUrl()); lists.add(newslist.get(3).getPicUrl()); lists.add(newslist.get(4).getPicUrl()); //添加适配器 PagerAdapter pagerAdapter=new PageAdaper(this,lists); pager0.setAdapter(pagerAdapter); //handler发送消息 handler.sendEmptyMessageDelayed(1,1000); pager0.setCurrentItem(lists.size()*100000); //把添加的视图都清除 imageout.removeAllViews(); images.clear(); //添加小圆点,让小圆点的数量与请求图片的数量一致 for (int i = 0; i <lists.size() ; i++) { ImageView imageView=new ImageView(LoginActivity.this); if(i==0){ imageView.setImageResource(R.drawable.point_selected); }else{ imageView.setImageResource(R.drawable.point_mormal); } //添加视图 imageout.addView(imageView); images.add(imageView); } } //小圆点 private void setyuandian(int index) { for (int i = 0; i <lists.size() ; i++) { if(i==index){ images.get(i).setImageResource(R.drawable.point_selected); }else{ images.get(i).setImageResource(R.drawable.point_mormal); } } } private void setadaper() { if(adaper==null){ adaper =new MyAdaper(LoginActivity.this,newdatas); mylistview.setAdapter(adaper); }else{ adaper.notifyDataSetChanged(); } } private void shuaxin() { pst.setMode(PullToRefreshBase.Mode.BOTH); pst.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ScrollView> refreshView) { types=1; pathtype=10; path="http://api.tianapi.com/social/?key=35f63c08e9b14e43c20eb253ca096dd2&num="+pathtype; setDatas(); //刷新时候关闭handler handler.removeMessages(1); } @Override public void onPullUpToRefresh(PullToRefreshBase<ScrollView> refreshView) { types=2; pathtype++; path="http://api.tianapi.com/social/?key=35f63c08e9b14e43c20eb253ca096dd2&num="+pathtype; setDatas(); //加载时候关闭handler handler.removeMessages(1); } }); } }
PullToRefreshScrollView上下拉刷新与轮播图使用时,解决轮播图中小圆点的增删
最新推荐文章于 2019-10-22 13:42:16 发布