您的位置:首页 > Web前端 > JavaScript

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;
}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  json数组解析