xlistview


                    <!==============http==================!>
public class Http {
       public  static  void  httpAscynTask(String string, final Callbacks callbacks){
           new AsyncTask<String, Integer, String>() {
               @Override
               protected String doInBackground(String... strings) {
                   return geturl(strings[0]);
               }
               @Override
               protected void onPostExecute(String s) {
                   super.onPostExecute(s);
                   callbacks.getData(s);
               }
           }.execute(string);
       }
       public  interface  Callbacks{
           void  getData(String s);
       }
   public  static  String geturl(String string ){
        try {
            URL url = new URL(string);
            HttpURLConnection urlConnection = (HttpURLConnection)url.openConnection();
            urlConnection.setRequestMethod("GET");
            urlConnection.setConnectTimeout(5000);
            urlConnection.setReadTimeout(5000);
            int code = urlConnection.getResponseCode();
            if (code==200){
                InputStream stream = urlConnection.getInputStream();
                BufferedReader reader = new BufferedReader(new InputStreamReader(stream, "utf-8"));
                StringBuilder builder = new StringBuilder();
                String str="";
                while ((str=reader.readLine())!=null){
                     builder.append(str);
                }
              return   builder.toString();
            }
            urlConnection.disconnect();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return  null;
    }
}

                    <!==============Fraglist==================!>
public class Fraglist extends Fragment {
    private String str = "http://api.expoon.com/AppNews/getNewsList/type/1/p/1";
    private Adapter adapter;
    private List<JsonData.DataBean> list;
    private XListView xlistview;
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fraglist,null);
        xlistview = view.findViewById(R.id.xlistview);
       xlistview.setPullLoadEnable(true);
       xlistview.setXListViewListener(new XListView.IXListViewListener() {
           @Override
           public void onRefresh() {
               Http.httpAscynTask(str, new Http.Callbacks() {
                   @Override
                   public void getData(String s) {
                       Gson gson = new Gson();
                       JsonData data = gson.fromJson(s, JsonData.class);
                       list = data.getData();
                       adapter = new Adapter(getActivity(), list);
                       xlistview.setAdapter(adapter);
                       onLoad();
                   }
               });
           }
           @Override
           public void onLoadMore() {
               Http.httpAscynTask(str, new Http.Callbacks() {
                   @Override
                   public void getData(String s) {
                       Gson gson = new Gson();
                       JsonData data = gson.fromJson(s, JsonData.class);
                       List<JsonData.DataBean> beans = data.getData();
                       list.addAll(beans);
                       adapter.notifyDataSetChanged();
                       onLoad();
                   }
               });
           }
       });
        Http.httpAscynTask(str, new Http.Callbacks() {
            @Override
            public void getData(String s) {
                Log.i("自行车自行车自行车",s+"");
                Gson gson = new Gson();
                JsonData data = gson.fromJson(s, JsonData.class);
                Log.i("自行车自行车自行车",data+"");
                list = data.getData();
                adapter = new Adapter(getActivity(), list);
                xlistview.setAdapter(adapter);
            }
        });
        return  view;
    }
    private  void  onLoad(){
        xlistview.stopRefresh();
        xlistview.stopLoadMore();
        xlistview.setRefreshTime("刚刚刷新过");
    }
}

   <!==============Adapter==================!>
public class Adapter extends BaseAdapter {
    private List<JsonData.DataBean> list;
    private Context context;
    public Adapter(FragmentActivity context, List<JsonData.DataBean> list) {
        this.context=context;
        this.list=list;
    }
    @Override
    public int getCount() {
        return list.size();
    }
    @Override
    public Object getItem(int position) {
        return null;
    }
    @Override
    public long getItemId(int position) {
        return 0;
    }
    @Override
    public int getViewTypeCount() {
        return 3;
    }
    @Override
    public int getItemViewType(int position) {
        return position%3;
    }
    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        switch (getItemViewType(position)){
            case 0:
                convertView = View.inflate(context,R.layout.domou1, null);
                TextView name1 = convertView.findViewById(R.id.name1);
                ImageView img1 = convertView.findViewById(R.id.img1);
                name1.setText(list.get(position).getNews_title());               ImageLoader.getInstance().displayImage(list.get(position).getPic_url(),img1);
                break;
            case 1:
                convertView = View.inflate(context,R.layout.domou2, null);
                TextView name2 = convertView.findViewById(R.id.name2);
                ImageView img2 = convertView.findViewById(R.id.img2);
              ImageLoader.getInstance().displayImage(list.get(position).getPic_url(),img2);
                name2.setText(list.get(position).getNews_title());
                break;
            case 2:
                convertView = View.inflate(context,R.layout.domou3, null);
                TextView name3 = convertView.findViewById(R.id.name3);
                ImageView img3 = convertView.findViewById(R.id.img3);
                name3.setText(list.get(position).getNews_title());
              ImageLoader.getInstance().displayImage(list.get(position).getPic_url(),img3);
                break;
        }
        return convertView;
    }
}
  <!==============app==================!>
public class App extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        DisplayImageOptions options = new DisplayImageOptions.Builder().displayer(new CircleBitmapDisplayer()).build();
        ImageLoaderConfiguration build = new ImageLoaderConfiguration.Builder(this).defaultDisplayImageOptions(options).build();
        ImageLoader loader = ImageLoader.getInstance();
        loader.init(build);
    }
}
public class FragGridview extends Fragment {
    private GridView gridview;
    @Nullable
    @Override
    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.fraggridview, null);
        gridview = view.findViewById(R.id.gridview);
         new Thread(){
             @Override
             public void run() {
                 super.run();
                 String url = Http.getUrl("http://api.expoon.com/AppNews/getNewsList/type/1/p/1");
                 Gson gson = new Gson();
                 Jsondata json = gson.fromJson(url, Jsondata.class);
                 List<Jsondata.DataBean> list = json.getData();
                 Message message = new Message();
                 message.what=0;
                 message.obj=list;
                 handler.sendMessage(message);
             }
         }.start();
        return  view;
    }
     Handler handler=new Handler(){
         @Override
         public void handleMessage(Message msg) {
             super.handleMessage(msg);
             switch (msg.what){
                 case 0:
                     List<Jsondata.DataBean> list = (List<Jsondata.DataBean>) msg.obj;
                     MyAdapter myAdapter = new MyAdapter(getActivity(),list);
                     gridview.setAdapter(myAdapter);
             }
         }
     };
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值