具体处理思路以及使用到的知识点:
1.使用android的异步处理
2.将要使用的功能(方法)进行封装,以便主类进行调用
3.前台展示要使用适配器模型(这里使用简单适配器(SimpleAdapter))
主类的代码:
package com.example.lenovo.asynctask_json;
import android.graphics.Bitmap;
import android.os.AsyncTask;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.SimpleAdapter;
import com.example.lenovo.asynctask_json.domin.NetUtils;
import java.io.InputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.List;
import java.util.Map;
/**
* {}代表 json对象
* []:代表时json 数组
*
* {key:value,key:value,key:value.....}
*
* {
* name:"张三",
*
* age:20,
*
* tel:[111,222,333,444],
*
* loves:[
* {ball:"球"},
* {game:"游戏"}
*
* ]
*
* }
*/
public class MainActivity extends AppCompatActivity {
private ListView listView_movie;
private SimpleAdapter adapter;
private List<Map<String,Object>> list;
//private String path="http://lib.wap.zol.com.cn/ipj/docList.php?class_id=0&page=1&vs=and380&retina=1
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
this.listView_movie= (ListView) this.findViewById(R.id.listView_movie);
String path= null;
try {
//URLEncoder.encode("热门","utf-8"):将汉字进行Unicode编码
path = "https://movie.douban.com/j/search_subjects?type=movie&tag="+ URLEncoder.encode("热门","utf-8")+"&sort=recommend&page_limit=20&page_start=21";
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
new NetDownLoadAsyncTask().execute(path);
}
private final class NetDownLoadAsyncTask extends AsyncTask<String,Void,List<Map<String,Object>>>{
@Override
protected List<Map<String, Object>> doInBackground(String... params) {
//调用NetUtils类的方法,将网址对应的数据以InputStream的形式返回.
InputStream inputS