封装工具类MyTask+判断是否有网络+ViewPagerFragment+Xlistview多条目加载

/**
 * 封装工具类MyTask,用于异步接受数据
*/package com.example.utile;
        import android.os.AsyncTask;
        import org.apache.http.HttpEntity;
        import org.apache.http.HttpResponse;
        import org.apache.http.client.HttpClient;
        import org.apache.http.client.methods.HttpGet;
        import org.apache.http.impl.client.DefaultHttpClient;
        import org.apache.http.util.EntityUtils;
/**
 * Created by Administrator on 2018/1/6 0006.
 */
public class MyTask extends AsyncTask<String,Void,String> {
    //把接口定义出来
    private ICallBacks icallBacks;
    //创建该类,必须传进一个构造。
    public MyTask(ICallBacks icallBacks) {
        this.icallBacks = icallBacks;
    }
    @Override
    protected String doInBackground(String... strings) {
        HttpClient httpClient = new DefaultHttpClient();
        HttpGet httpGet = new HttpGet(strings[0]);
        try {
            HttpResponse response = httpClient.execute(httpGet);
            if(response.getStatusLine().getStatusCode() == 200){
                HttpEntity entity = response.getEntity();
                String s = EntityUtils.toString(entity);
                return s;
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return null;
    }
    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        icallBacks.getJson(s);
    }
    public interface ICallBacks{
        void getJson(String s);
    }
}
/**
 * 判断是否有网络
 */

public class NetUtils {


    //判断有无网络的方法
    public static boolean isConn(Context context){
        //1.得到系统服务
        ConnectivityManager manager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);

        //2.得到网络信息类对象-需要添加权限

        //清单文件配置:<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission>
        NetworkInfo info = manager.getActiveNetworkInfo();
        //3.进行判断
        if(info!=null && info.isAvailable()){//已经连接网络
            return true;
        }else{
            return false;
        }
    }


    //如果没有网络的情况下,弹出一个对话框,打开设置页面
    public static void openNetDialog(final Context context){
        AlertDialog.Builder builder=new AlertDialog.Builder(context);
        builder.setTitle("提示");
        builder.setMessage("没有网络,是否进行设置?");
        builder.setPositiveButton("设置", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                //跳转到系统设置页面-隐士跳转
                Intent intent = null;
                // 先判断当前系统版本
                if(android.os.Build.VERSION.SDK_INT > 10){  // 3.0以上
                    intent = new Intent(android.provider.Settings.ACTION_WIRELESS_SETTINGS);
                }else{
                    intent = new Intent();
                    intent.setClassName("com.android.settings", "com.android.settings.WirelessSettings");
                }
                context.startActivity(intent);
            }
        });
        builder.setNegativeButton("取消",null);
        AlertDialog dialog = builder.create();
        dialog.show();
    }
    }
//viewPager和fragment
public class ShowActivity extends AppCompatActivity {

    private ViewPager viewPager;
    private ArrayList<Fragment> list;
    private RadioGroup group;
    private Button but1;
    private Button but2;
    private Button but3;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_show);

        NetUtils netUtils = new NetUtils();
//调用是否有网络的方法,判断在往下进行
        boolean b = netUtils.isConn(ShowActivity.this);

        if(!b){
            netUtils.openNetDialog(ShowActivity.this);
        }
        but1 = findViewById(R.id.but1);
        but2 = findViewById(R.id.but2);
        but3 = findViewById(R.id.but3);
        group = findViewById(R.id.group);
        viewPager = findViewById(R.id.viewpager);
        list = new ArrayList<>();
        list.add(new Fragment1());
        list.add(new Fragment2());
        list.add(new Fragment3());
        viewPager.setAdapter(new FragmentPagerAdapter(getSupportFragmentManager()) {
            @Override
            public Fragment getItem(int position) {
                return list.get(position);
            }

            @Override
            public int getCount() {
                return list.size();
            }
        });
        viewPager.setOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                switch (position) {
                    case 0:
                        group.check(R.id.but1);
                        break;
                    case 1:
                        group.check(R.id.but2);
                        break;
                    case 2:
                        group.check(R.id.but3);
                        break;
                    default:
                        break;
                }
            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });
        group.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
            @Override
            public void onCheckedChanged(RadioGroup radioGroup, int i) {
                switch (i) {
                    case R.id.but1:
                        viewPager.setCurrentItem(0);
                        break;
                    case R.id.but2:
                        viewPager.setCurrentItem(1);
                        break;
                    case R.id.but3:
                        viewPager.setCurrentItem(2);
                        break;
                    default:
                        break;
                }
            }
        });
    }
    }
/** * 请求数据 */
public class Fragment1 extends Fragment{
    private XListView xlv;
    private List<Jingdong.DataBean> list;
    private List<Jingdong2.TuijianBean.ListBean> list2;
    private List<Object> listObj = new ArrayList<>();
    private String icon;
    private Handler handler = new Handler(){
        @Override
        public void handleMessage(Message msg) {

                if(list!=null&&list2!=null){
                    listObj.add(icon);
                    listObj.add(list);
                    listObj.add(list2);

                    MyAdapter myAdapter = new MyAdapter(getActivity(),listObj);
                    xlv.setAdapter(myAdapter);


                    handler.removeMessages(0);
                }
         }
    };

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragment1, container, false);
        xlv=view.findViewById(R.id.xlv);
        xlv.setPullRefreshEnable(false);
        xlv.setPullLoadEnable(false);
        xlv.setXListViewListener(new XListView.IXListViewListener() {
            @Override
            public void onRefresh() {
            }

            @Override
            public void onLoadMore() {

            }
        });
        startTask();

         return view;

    }
    public void startTask(){

        MyTask myTask = new MyTask(new MyTask.ICallBacks() {
            @Override
            public void getJson(String json) {
                Gson gson = new Gson();
                Jingdong jingdong = gson.fromJson(json, Jingdong.class);
                list = jingdong.getData();


            }
        });

        MyTask myTask2 = new MyTask(new MyTask.ICallBacks() {

            @Override
            public void getJson(String json) {
                Gson gson = new Gson();
                Jingdong2 jingdong2 = gson.fromJson(json, Jingdong2.class);
                icon = jingdong2.getData().get(0).getIcon();

                list2 = jingdong2.getTuijian().getList();
              
            }
        });

        myTask.execute("http://120.27.23.105/product/getCatagory");
        myTask2.execute("http://120.27.23.105/ad/getAd");


        handler.sendEmptyMessageDelayed(0,1000);



    }

}
/** * 适配器 */

public class MyAdapter extends BaseAdapter{

    private Context context;
    private List<Object> listObj;
    private final static int ONE = 0;
    private final static int TWO = 1;
    private final static int THREE = 2;
    private DisplayImageOptions options;

    public MyAdapter(Context context, List<Object> listObj) {
        this.context = context;
        this.listObj = listObj;
        options = new DisplayImageOptions.Builder()
                .cacheInMemory(true)//使用内存缓存
                .cacheOnDisk(true)//使用磁盘缓存
                .showImageOnLoading(R.mipmap.ic_launcher)//设置正在下载的图片
                .showImageForEmptyUri(R.mipmap.ic_launcher)//url为空或请求的资源不存在时
                .showImageOnFail(R.mipmap.ic_launcher)//下载失败时显示的图片
                .bitmapConfig(Bitmap.Config.RGB_565)//设置图片色彩模式
                .imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式
                .build();
    }

    @Override
    public int getViewTypeCount() {
        return 3;
    }



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

    @Override
    public Object getItem(int i) {
        return listObj.get(i);
    }

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

    @Override
    public View getView(int i, View view, ViewGroup viewGroup) {
        if(i == 0){
            ViewHolder holder;
            if(view == null){
                view = View.inflate(context,R.layout.item_one,null);
                holder = new ViewHolder();
                holder.imageView = view.findViewById(R.id.imageView);
                view.setTag(holder);
            }else {
                holder = (ViewHolder) view.getTag();
            }
            String url = (String)listObj.get(0);
            ImageLoader.getInstance().displayImage(url,holder.imageView,options);
            return view;
        }else if(i == 1){
            ViewHolder2 holder;
            if(view == null){
                view = View.inflate(context,R.layout.item_two,null);
                holder = new ViewHolder2();
                holder.gridView2 = view.findViewById(R.id.gridView);
                view.setTag(holder);
            }else {
                holder = (ViewHolder2) view.getTag();
            }
            List<Jingdong.DataBean> list1 = (List<Jingdong.DataBean>)listObj.get(1);
            Log.e("+++++++++++++++++",list1+"");
            GridView1Adapter gridView1Adapter = new GridView1Adapter(context, list1);
            holder.gridView2.setAdapter(gridView1Adapter);

            return view;
        }else {
            ViewHolder3 holder;
            if(view == null){
                view = View.inflate(context,R.layout.item_three,null);
                holder = new ViewHolder3();
                holder.gridView3 = view.findViewById(R.id.gridView);
                view.setTag(holder);
            }else {
                holder = (ViewHolder3) view.getTag();
            }
            List<Jingdong2.TuijianBean.ListBean> list2 = (List<Jingdong2.TuijianBean.ListBean>)listObj.get(2);
            GridView2Adapter gridView2Adapter = new GridView2Adapter(context, list2);
            holder.gridView3.setAdapter(gridView2Adapter);
            return view;
        }
    }
    public class ViewHolder{
        ImageView imageView;
    }
    public class ViewHolder2{
        GridView gridView2;
    }
    public class ViewHolder3{
        GridView gridView3;
    }


}
清单文件的配置:
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值