点击侧滑任何一个 菜单项,请求网络数据展示在主界面的xlistview中且实现下拉刷新效果和上拉加载的分页加载数据效果

//xml布局
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    tools:context="com.bwei.MainActivity">

    <android.support.v4.widget.DrawerLayout
        android:id="@+id/drawerLayout"
        android:layout_width="match_parent"
        android:layout_height="match_parent">

        <com.bwie.xlistviewlibrary.View.XListView
            android:id="@+id/xlv"
            android:layout_width="match_parent"
            android:layout_height="match_parent">

        </com.bwie.xlistviewlibrary.View.XListView>

        <ListView
            android:id="@+id/lv"
            android:layout_width="150dp"
            android:layout_height="wrap_content"
            android:layout_gravity="left"
            android:choiceMode="singleChoice" />
    </android.support.v4.widget.DrawerLayout>
</LinearLayout>
 
//main方法的操作
package com.bwei;

import android.annotation.SuppressLint;
import android.os.AsyncTask;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;

import com.bwei.BEAN.bean;
import com.bwei.DAO.IToos;
import com.bwie.xlistviewlibrary.View.XListView;
import com.google.gson.Gson;
import com.nostra13.universalimageloader.core.ImageLoader;

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

public class MainActivity extends AppCompatActivity implements XListView.IXListViewListener {


    private DrawerLayout drawable;
    private ListView lv;

    private List<String> list;
    private Myadapter my;

    int j = 1;
    int n = 1;
    private ImageLoader instance;
    private MyBase mybase;
    private XListView xlv;
    String Httpurl = "https://api.expoon.com/AppNews/getNewsList/type/";
    private List<com.bwei.BEAN.bean.DataBean> li = new ArrayList<>();

    @Override
    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        //获取控件
        drawable = (DrawerLayout) findViewById(R.id.drawerLayout);
        //获取listView控件
        lv = (ListView) findViewById(R.id.lv);
        //侧滑的初始值
        indata();
        //侧滑的适配器
        my = new MainActivity.Myadapter();
        lv.setAdapter(my);

        //xlv控件
        xlv = (XListView) findViewById(R.id.xlv);
        //xlv的适配器
        mybase = new MyBase();
        xlv.setAdapter(mybase);

        //图片全局适配
        instance = ImageLoader.getInstance();
        //允许下拉
        xlv.setPullLoadEnable(true);
        //调用自己当实现类
        xlv.setXListViewListener(this);

        //调用网络数据的方法 传的是j改变URL n传的是改变type
        getasyntask(j, n);
        //侧滑的点击事件
        lv.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                //点击黑j传值改变url
                j = i + 1;


                //调用网络数据的方法 传的是j改变URL n传的是改变type
                getasyntask(j, n);
                //清空集合
                li.clear();
                //关闭侧滑
                drawable.closeDrawer(lv);
            }
        });
    }

    //侧滑的初始值
    private void indata() {
        list = new ArrayList<>();
        list.add("新闻");
        list.add("关注");
        list.add("动态");
        list.add("设置");
    }


    class Myadapter extends BaseAdapter {
        @Override
        public int getCount() {
            return list.size();
        }

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

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

        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {
            if (view == null) {
                view = View.inflate(MainActivity.this, R.layout.f1, null);
            }
            TextView tv = (TextView) view.findViewById(R.id.tv);
            tv.setText(list.get(i));

            return view;


        }
    }

    //调用网络数据的方法 传的是j改变URL n传的是改变type
    public void getasyntask(int j, int n) {
        new Myasyntask().execute(Httpurl + j + "/p/" + n);

    }

    //下拉刷新
    @Override
    public void onRefresh() {
        li.clear();
        n = 1;
        getasyntask(j, n);
    }

    //上啦加载
    @Override
    public void onLoadMore() {
        n += 1;
        getasyntask(j, n);
    }

    //加载完后关闭
    public void clearguibi() {
        //下拉关闭
        xlv.stopRefresh();
        //上啦关闭
        xlv.stopLoadMore();
        //刷新时间
        xlv.setRefreshTime("刚刚");


    }

    class Myasyntask extends AsyncTask<String, Void, String> {
        //子线程运行的方法
        @Override
        protected String doInBackground(String... strings) {
            //strings数组
            String jiexi = strings[0];
            //实力化解析的方法类
            String ioss = IToos.ioss(jiexi);
            return ioss;
        }

        @Override//回调成功的方法
        protected void onPostExecute(String s) {// s就是回调的是ioss
            super.onPostExecute(s);
            //实力化gson
            Gson g = new Gson();
            //获取解析的类
            bean bean = g.fromJson(s, bean.class);//bean.class类
            //获取data类
            List<com.bwei.BEAN.bean.DataBean> data = bean.getData();
            //获取pc_feed_focus数组

            //pc_feed_focus集合放入list的集合
            li.addAll(data);
            //刷新
            mybase.notifyDataSetChanged();


            //在刷新后 加载完后关闭的方法
            clearguibi();


        }
    }


    class MyBase extends BaseAdapter {
        @Override
        public int getCount() {
            return li.size();
        }

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

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

        @SuppressLint("CutPasteId")
        @Override
        public View getView(int i, View view, ViewGroup viewGroup) {

            int type = getItemViewType(i);
            Viewholder holder0 = null;
            Viewholder1 holder1 = null;
            switch (type) {
                case 0:
                    if (view == null) {
                        holder0 = new Viewholder();

                        view = View.inflate(MainActivity.this, R.layout.f2, null);
                        holder0.tv = (TextView) view.findViewById(R.id.tvv);
                        view.setTag(holder0);
                    } else {
                        holder0 = (Viewholder) view.getTag();
                    }
                    holder0.tv.setText(li.get(i).getNews_title());

                    break;


                case 1:
                    if (view == null) {
                        holder1 = new Viewholder1();

                        view = View.inflate(MainActivity.this, R.layout.f, null);
                        holder1.tvv2 = (TextView) view.findViewById(R.id.tvv1);
                        holder1.im = (ImageView) view.findViewById(R.id.imga);
                        view.setTag(holder1);
                    } else {

                        holder1 = (Viewholder1) view.getTag();
                    }
                    holder1.tvv2.setText(li.get(i).getNews_title());

                    holder1.im = (ImageView) view.findViewById(R.id.imga);

                    instance.displayImage(li.get(i).getPic_url(), holder1.im);
                    break;
            }

            return view;
        }
        //布局数量
        @Override
        public int getViewTypeCount() {
            return 2;
        }
        //布局类型
        @Override
        public int getItemViewType(int position) {

            String pic_url = li.get(position).getPic_url();
            int type = 0;
            if (pic_url != null || pic_url != "") {
                type = 0;
            } else {
                type = 1;
            }


            return type;
        }
    }

    class Viewholder {

        TextView tv;

    }

    class Viewholder1 {

        TextView tvv2;
        ImageView im;
    }
}

 
 
 

                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值