package com.example.week3_lianxi; import android.annotation.SuppressLint; import android.app.Activity; import android.os.AsyncTask; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.os.PersistableBundle; import android.support.annotation.Nullable; import android.support.v4.view.ViewPager; import android.util.Log; import android.widget.ImageView; import android.widget.LinearLayout; import android.widget.ListView; import android.widget.ScrollView; import com.google.gson.Gson; import com.handmark.pulltorefresh.library.PullToRefreshBase; import com.handmark.pulltorefresh.library.PullToRefreshScrollView; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.net.HttpURLConnection; import java.net.URL; import java.util.ArrayList; import java.util.List; /** * Created by lenovo on 2018/4/26. */ public class Second extends Activity{ private int pageIndex=1; private int operType=1; private String myurl="http://365jia.cn/news/api3/365jia/news/headline?page="+pageIndex; private List<String> imgUrls=new ArrayList<>(); private List<Urse.DataBeanX.DataBean> datas=new ArrayList<>(); private PullToRefreshScrollView psv; private ListView listView; private ViewPager vp; private LinearLayout linPoint; private ListViewAdapter adapter; private List<ImageView> lists=new ArrayList<>(); @SuppressLint("HandlerLeak") private Handler mhandler =new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); int cIndex = vp.getCurrentItem(); cIndex++; vp.setCurrentItem(cIndex); setSelectedPoint(cIndex%lists.size()); sendEmptyMessageDelayed(0,1000); } }; @Override public void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main2); psv = findViewById(R.id.psv); listView = findViewById(R.id.lv); vp = findViewById(R.id.vp); linPoint = findViewById(R.id.lin_point); //初始化 initPsv(); //请求数据 recreatData(); } private void recreatData() { new MyTask().execute(myurl); } public void setSelectedPoint(int pageIndex) { for (int i = 0; i <lists.size() ; i++) { if (i==pageIndex){ lists.get(i).setImageResource(R.drawable.point_selected); }else { lists.get(i).setImageResource(R.drawable.point_unselected); } } } private class MyTask extends AsyncTask<String, Void, String> { //在后台执行的任务 @Override protected String doInBackground(String... strings) {//String... 可变长的字符串 string类型的数组,长度不固定 try { URL url = new URL(strings[0]); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); InputStream inputStream = urlConnection.getInputStream(); String s = streamToString(inputStream); return s; } catch (Exception e) { e.printStackTrace(); } return "123"; } //在doInBackground之后,调用的方法,,,更新UI的操作,相当于handlerMessage中的功能 @Override protected void onPostExecute(String s) { super.onPostExecute(s); //解析+展示 Gson gson = new Gson(); Urse urse = gson.fromJson(s, Urse.class); List<Urse.DataBeanX.DataBean> data = urse.getData().getData(); showPics(data); if (operType == 1) { datas.clear(); } datas.addAll(data); setAdapter(); psv.onRefreshComplete(); } } private void showPics(List<Urse.DataBeanX.DataBean> data) { imgUrls.clear(); imgUrls.add("http://365jia.cn/uploads/"+data.get(0).getPics().get(0)); imgUrls.add("http://365jia.cn/uploads/"+data.get(1).getPics().get(0)); imgUrls.add("http://365jia.cn/uploads/"+data.get(2).getPics().get(0)); MyAdapter adapter = new MyAdapter(imgUrls,Second.this); vp.setAdapter(adapter); initPoint(); //Handler发消息 mhandler.sendEmptyMessageDelayed(0,1000); } private void initPoint() { linPoint.removeAllViews(); lists.clear(); for (int i = 0; i <imgUrls.size() ; i++) { ImageView imageView = new ImageView(this); LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT); params.setMargins(0,0,10,0); if (i==0){ imageView.setImageResource(R.drawable.point_selected); }else { imageView.setImageResource(R.drawable.point_unselected); } linPoint.addView(imageView,params); lists.add(imageView); } } private void setAdapter() { if (adapter==null) { adapter = new ListViewAdapter(datas,Second.this); listView.setAdapter(adapter); }else { adapter.notifyDataSetChanged(); } } private String streamToString(InputStream stream) { StringBuilder builder = new StringBuilder(); String str; BufferedReader reader = new BufferedReader(new InputStreamReader(stream)); try { while ((str=reader.readLine())!=null){ builder.append(str); Log.i("jljs", builder.toString()); } } catch (IOException e) { e.printStackTrace(); } return builder.toString(); } private void initPsv() { psv.setMode(PullToRefreshBase.Mode.BOTH); psv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ScrollView>() { @Override public void onPullDownToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) { //刷新回调 operType=1; pageIndex=1; myurl="http://365jia.cn/news/api3/365jia/news/headline?page="+pageIndex; mhandler.removeCallbacksAndMessages(null); recreatData(); } @Override public void onPullUpToRefresh(PullToRefreshBase<ScrollView> pullToRefreshBase) { //加载回调 operType=2; pageIndex++; myurl="http://365jia.cn/news/api3/365jia/news/headline?page="+pageIndex; mhandler.removeCallbacksAndMessages(null); recreatData(); } }); } }
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交