AsyncTask

本文介绍了一个名为Fragmenttwo的Fragment组件,它使用AsyncTask从远程URL获取JSON数据,并将其解析为Personbean对象列表。然后,该列表被填充到一个GridView中,每个单元格显示新闻ID、标题和摘要。
package com.example.work1.fragment;

import android.os.AsyncTask;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.TextView;

import com.example.work1.R;
import com.example.work1.bean.Personbean;
import com.example.work1.bean.Workbean;
import com.google.gson.Gson;

import java.util.ArrayList;
import java.util.List;

public class Fragmenttwo extends Fragment {
    @Nullable

    private List<Personbean.DataBean> alist = new ArrayList<Personbean.DataBean>();
    protected GridView grid;
    public String urlString = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";

    private Mybase mybase;

    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fragmenttwo, container, false);
        grid = view.findViewById(R.id.gridview);
        mybase=new Mybase();
        grid.setAdapter(mybase);
        new Masyc().execute(urlString);
        return view;
    }
    class Masyc extends AsyncTask<String,Void,String>{
        @Override
        protected String doInBackground(String... strings) {

            String getjson=Workbean.getjson(strings[0]);

            return getjson;
        }

        @Override
        protected void onPostExecute(String s) {
            super.onPostExecute(s);
            Gson gson=new Gson();
           Personbean fromJson= gson.fromJson(s,Personbean.class);
           alist=fromJson.getData();
           mybase.notifyDataSetChanged();;
        }
    }


    class Mybase extends BaseAdapter {

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

        @Override
        public Object getItem(int position) {
            return null;
        }

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

        @Override
        public View getView(int position, View convertView, ViewGroup parent) {
            ViewHolder holder;
            if (convertView == null) {
                holder = new ViewHolder();
                convertView = View.inflate(getActivity(), R.layout.mybase, null);
                holder.name1 = (TextView) convertView.findViewById(R.id.basetext1);
                holder.name2 = (TextView) convertView.findViewById(R.id.basetext2);
                holder.name3 = (TextView) convertView.findViewById(R.id.basetext3);


                convertView.setTag(holder);

            } else {
                holder =(ViewHolder) convertView.getTag();
            }
            holder.name1.setText(alist.get(position).getNews_id());
            holder.name2.setText(alist.get(position).getNews_title());
            holder.name3.setText(alist.get(position).getNews_summary());

            return convertView;
        }

    }

    class ViewHolder {
        TextView name1;
        TextView name2;
        TextView name3;
    }
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值