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

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



MyAdapter3类:

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

    public MyAdapter3(Context context, List<User> 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<User> 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<User>();
        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<User> it) {
            super(context, it);
        }
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值