3秒显示下一条及json数组解析
2017-10-09 20:14
295 查看
package com.example.shipilianxi; import android.os.AsyncTask; import android.os.Handler; import android.os.Message; import android.support.v4.view.ViewPager; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.EditText; import android.widget.ImageView; import android.widget.ListView; import android.widget.TextView; import com.google.gson.Gson; import com.nostra13.universalimageloader.core.ImageLoader; import java.io.BufferedReader; import java.io.IOException; import java.io.InputStream; import java.io.InputStreamReader; import java.io.UnsupportedEncodingException; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.net.URLEncoder; import java.util.List; import java.util.Timer; import java.util.TimerTask; import static android.R.id.list; public class MainActivity extends AppCompatActivity { int i=0; private EditText name; private String s; private String path; private ViewPager vp; Handler h=new Handler(){ @Override public void handleMessage(Message msg) { i++; vp.setCurrentItem(i); } }; private ListView lv; private ImageView aa; private TextView textview1; private TextView textview2; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); aa = (ImageView) findViewById(R.id.aa); name = (EditText) findViewById(R.id.name); vp = (ViewPager) findViewById(R.id.vp); textview1 = (TextView) findViewById(R.id.textview1); textview2 = (TextView) findViewById(R.id.textview2); jishi(); } private void jishi() { Timer timer = new Timer(); timer.schedule(new Time 4000 rTask() { @Override public void run() { h.sendEmptyMessage(i); } },0,1000); } public void go(View view){ s = name.getText().toString(); AsyncTask<Void,Void,String> asyncTask =new AsyncTask<Void, Void, String>() { @Override protected String doInBackground(Void... voids) { try { path = "http://op.juhe.cn/onebox/movie/video?key=90daf4317665b4ead0f7566e3cbb169d&q="+ URLEncoder.encode(s,"utf-8"); } catch (Exception e) { e.printStackTrace(); } try { URL url = new URL(path); HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection(); urlConnection.setRequestMethod("GET"); urlConnection.setReadTimeout(5000); urlConnection.setConnectTimeout(5000); int responseCode = urlConnection.getResponseCode(); if (responseCode==200){ InputStream inputStream = urlConnection.getInputStream(); String s = convertStreamToString(inputStream); return s; } } catch (Exception e) { e.printStackTrace(); } return null; } @Override protected void onPostExecute(String s) { Gson gson = new Gson(); Data data = gson.fromJson(s, Data.class); //无线轮播集合 List<Data.ResultBean.VideoRecBean> video_rec = data.getResult().getVideo_rec(); //图片 String desc = data.getResult().getCover(); //标题 String title = data.getResult().getTitle(); //国际 String area = data.getResult().getArea(); //适配器 Myadapter myadapter = new Myadapter(video_rec,MainActivity.this); vp.setAdapter(myadapter); //设置图片 ImageLoader.getInstance().displayImage(desc,aa,ImageUrl.getto()); //设置标题 textview1.setText("影片名称:"+title); //设置国家 textview2.setText("国际:"+area); } }; asyncTask.execute(); } /** * 将输入流转成字符串 * * @param is * 输入流 * @return 返回字符串 */ private static String convertStreamToString(InputStream is) { BufferedReader reader = new BufferedReader(new InputStreamReader(is)); StringBuilder sb = new StringBuilder(); String line = null; try { while ((line = reader.readLine()) != null) { sb.append(line); } } catch (IOException e) { e.printStackTrace(); } finally { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } return sb.toString(); } }
2.适配器
package com.example.shipilianxi; import android.content.Context; import android.support.v4.app.Fragment; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentPagerAdapter; import android.support.v4.view.PagerAdapter; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import com.nostra13.universalimageloader.core.ImageLoader; import java.util.List; /** * Created by Administrator on 2017/10/11 0011. */ public class Myadapter extends PagerAdapter { List<Data.ResultBean.VideoRecBean> list; Context con; public Myadapter(List<Data.ResultBean.VideoRecBean> list, Context con) { this.list = list; this.con = con; } //向一个方向能滑动n多次 @Override public int getCount() { return Integer.MAX_VALUE; // } @Override public boolean isViewFromObject(View arg0, Object arg1) { 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) { ImageView imgv=new ImageView(con); //创建 图片控件 int index= position%list.size(); //取余数 3--0 4---1 5---2 6--0 ImageLoader.getInstance().displayImage(list.get(index).getCover(),imgv,ImageUrl.getto()); container.addView(imgv); return imgv; } }
相关文章推荐
- 用ListView来显示解析jsonstr数组后的数据
- Extjs 获取到json数组 前台不显示或者只显示一条的问题
- 头条信息3秒切换以及json解析数组
- JS解析json数据(如何将json字符串转化为数组)
- json数组和json字符串转换成map解析
- Android MVP模式 解析JSON 显示到ListView上
- JQuery解析json对象、遍历筛选数组
- 解析json数组
- Newtonsoft.Json解析数组的小例子
- ios XML,JSON,数组解析并转换成NSMutableArray(List<class>)
- 如何使用ajax接受json返回的字符串数组,并动态异步显示到超链接的下面
- JSON PHP中返回JSON数据(多个JSON通过一个大的数组组合成一个JSON字符串),在客户端解析JSON数据减轻服务端压力
- html解析json数据为表格table显示
- Android中数据文件解析(Json解析【从服务器端获取数据并且解析,显示在客户端上面】)
- JS解析json数据(json字符串和数组之间相互转换)
- PHP 解析JSON数组
- json-lib-2.4.jar Bug,json字符串中value为"[value]"结构时,解析为数组,不会解析成字符串
- cocos2d-x把json数据解析到数组或字典中(libjson库)
- Jquery遍历筛选数组的几种方法和遍历解析json对象|Map()方法详解
- JS解析json数据并将json字符串转化为数组的实现方法