MainActivity.java11imageloaddislocation(listview图片加载错位)

来源:互联网 发布:淘宝店铺怎么打开 编辑:程序博客网 时间:2024/06/05 08:52
package com.example.imageloaddislocationlistview;


import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;


import com.example.imageloaddislocationlistview.adapter.MyBaseAdapter;
import com.example.imageloaddislocationlistview.bean.HealthInfo;
import com.example.imageloaddislocationlistview.utils.StreamTools;
import com.google.gson.Gson;
import com.limxing.xlistview.view.XListView;


import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.List;


public class MainActivity extends AppCompatActivity {


    private XListView xLv;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


        //找控件
        xLv = (XListView) findViewById(R.id.xLv);




        //设置适配器
        //xLv.setAdapter();


        healthData("http://japi.juhe.cn/health_knowledge/infoList?key=eb033dfcf95c03f9f451f6973049e6be");




    }


    /**
     * 请求网络数据
     * @param path 请求接口地址
     */
    private void healthData(String path){




        new AsyncTask<String,Void,String>(){


            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);


                if(s == null)
                    return;


                //解析
                Gson gson = new Gson();
                HealthInfo healthInfo = gson.fromJson(s, HealthInfo.class);
                //得到data值
                List<HealthInfo.ResultBean.DataBean> dataList = healthInfo.getResult().getData();


                //设置适配器
                xLv.setAdapter(new MyBaseAdapter(MainActivity.this,dataList));






            }


            @Override
            protected String doInBackground(String... params) {




                try {
                    String path = params[0];
                    URL url = new URL(path);


                    HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                    connection.setRequestMethod("GET");
                    connection.setConnectTimeout(5000);
                    connection.setReadTimeout(5000);


                    int code = connection.getResponseCode();
                    if(code == HttpURLConnection.HTTP_OK){
                        InputStream is = connection.getInputStream();


                        String json = StreamTools.readFromNetWork(is);
                        return json;
                    }
                } catch (Exception e) {
                    e.printStackTrace();
                }
                return null;
            }
        }.execute(path);






    }


















}
阅读全文
0 0
原创粉丝点击