大数据入门(获取JSON文件的信息并输出在安卓手机页面)

获取并下载JSON文件内容(直接在服务器的URL读取JSON文件)



MyAdapter3类:

public class MyAdapter3 extends BaseAdapter {
    private Context context;
    private List it;

    public MyAdapter3(Context context, List it) {
        this.context = context;
        this.it = it;
    }

    @Override
    public int getCount() {
        return it.size();
    }

    @Override
    public Object getItem(int position) {
        return it.get(position);
    }

    @Override
    public long getItemId(int position) {
        return position;
    }

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        //加载构造XML的核心类
        LayoutInflater layoutInflater = LayoutInflater.from(context);
        //绑定title.xml
        View view = layoutInflater.inflate(R.layout.title1, null);
        //绑定控件
        TextView nameText = view.findViewById(R.id.textView3);
        TextView ageText = view.findViewById(R.id.textView4);
        //获取值
        nameText.setText(it.get(position).getName());
        ageText.setText(""+ it.get(position).getAge());

        return view;
    }
}



JsonActivity类:
public class JsonActivity extends Activity{
    private List it;
    private MyHandle handler;
    private ListView listView2;

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        super.setContentView(R.layout.index);
        listView2=findViewById(R.id.ListView111);
        it=new ArrayList();
        MyThread myThread = new MyThread();
        handler = new MyHandle();
        myThread.start();
    }

    //后台线程
    class MyThread extends Thread{
        @Override
        public void run() {
            super.run();
            try {
                //获取JSON文件地址
                URL url = new URL("http://192.168.1.107:8080/Zhenai/hg.json");
                //通过URL获得connection
                HttpURLConnection connection = (HttpURLConnection) url.openConnection();
                //通过connection获得流
                InputStream is = connection.getInputStream();
                String neirong = "";
                int data = 0;
                //读取文件
                while ((data = is.read()) != -1) {
                    neirong += (char) data;
                }
                //创建JSONArray
                JSONArray array = new JSONArray(neirong);
                //循环遍并添加到集合
                for (int i = 0; i < array.length(); i++) {
                    JSONObject obj = array.getJSONObject(i);
                    int id = obj.getInt("id");
                    String name = obj.getString("name");
                    int age = obj.getInt("age");
                    User user = new User(id, name, age);
                   it.add(user);
                }
                //跳转到handler处理
                handler.sendMessage(new Message());
            }catch (Exception e){

            }
        }
    }

    //前台线程
    class MyHandle extends Handler{
        @Override
        public void handleMessage(Message msg) {
            super.handleMessage(msg);
            //跳转到MyAdapterJSON处理
            listView2.setAdapter(new MyAdapterJSON(JsonActivity.this,it));

        }
    }

    //Adapter
    class MyAdapterJSON extends MyAdapter3{
        //让MyAdapterJSON继承MyAdapter3类,获得其类的信息
        public MyAdapterJSON(Context context, List it) {
            super(context, it);
        }
    }
}

你可能感兴趣的:(大数据入门(获取JSON文件的信息并输出在安卓手机页面))