lll

//主方法

package com.example.admin.lujingyi1501c20171026;


import android.os.AsyncTask;
import android.support.v4.widget.DrawerLayout;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ListView;
import android.widget.TextView;
import android.widget.Toast;


import com.google.gson.Gson;
import com.handmark.pulltorefresh.library.PullToRefreshBase;
import com.handmark.pulltorefresh.library.PullToRefreshListView;


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


import Bean.Superclass;
import Tools.Myadapter;
import Tools.Netutiils;


public class MainActivity extends AppCompatActivity {
    DrawerLayout dw;
    ListView lv;
    List<String> list;
    PullToRefreshListView pull;
    String jsonurl="http://www.93.gov.cn/93app/data.do?channelId=0&startNum=";
    int count=0;
    List<Superclass.DataBean> data;
    Myadapter myadapter;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        dw= (DrawerLayout) findViewById(R.id.dw);
        lv= (ListView) findViewById(R.id.lv);
        pull= (PullToRefreshListView) findViewById(R.id.pull);
        pull.setMode(PullToRefreshBase.Mode.BOTH);


        cehua();
        //上拉刷新下拉加载监听
        pull.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                //刷新
                init();


            }
        //加载拼接端口号
            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
//异步
                new AsyncTask<String, String, String>() {
                    @Override
                    protected String doInBackground(String... params) {
                        Netutiils netutiils=new Netutiils();
                        //拼接端口号
                        count=count+20;
                        String getstring = netutiils.getstring(jsonurl+count);
                        return getstring;
                    }


                    @Override
                    protected void onPostExecute(String s) {
                        super.onPostExecute(s);
                        Gson gson=new Gson();
                        Superclass superclass = gson.fromJson(s, Superclass.class);
                        List<Superclass.DataBean> data2 = superclass.getData();
                        //原来数据集合添加新集合并刷新适配器 然后结束刷新
                        data.addAll(data2);
                        myadapter.notifyDataSetChanged();
                        pull.onRefreshComplete();
                    }
                }.execute();


            }
        });


        init();


    }
//pull给添加数据
    private void init() {
        //异步加载
        new AsyncTask<String, String, String>() {
            @Override
            protected String doInBackground(String... params) {
                //调用工具类
                Netutiils netutiils=new Netutiils();
                //获得原始数据并返回
                String getstring = netutiils.getstring(jsonurl+count);
                return getstring;
            }


            @Override
            protected void onPostExecute(String s) {
                super.onPostExecute(s);
                //解析返回的数据并付值
                Gson gson=new Gson();
                Superclass superclass = gson.fromJson(s, Superclass.class);
                //调用工具类
                data = superclass.getData();
                myadapter = new Myadapter(MainActivity.this,data);
                pull.setAdapter(myadapter);
                pull.onRefreshComplete();
            }
        }.execute();
    }


    private void cehua() {
        //侧滑页面内容
        list=new ArrayList<String>();
        list.add("我的消息");
        list.add("教学视频");
        list.add("我的成绩");
        list.add("学车日记");
        list.add("文章收藏");
        list.add("足迹中心");
        list.add("教员中心");
        list.add("设置");
        //侧滑中的listview适配器
        lv.setAdapter(new BaseAdapter() {
            @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 View getView(int position, View convertView, ViewGroup parent) {
                viewholde vh;
                if(convertView==null){
                    convertView=View.inflate(MainActivity.this,R.layout.list,null);
                    vh=new viewholde();
                    vh.tv=(TextView) convertView.findViewById(R.id.tv);
                    convertView.setTag(vh);
                }else{
                    vh= (viewholde) convertView.getTag();
                }
                vh.tv.setText(list.get(position).toString());
                return convertView;
            }
            class viewholde{
                TextView tv;
            }
        });
        //侧滑监听
        dw.setDrawerListener(new DrawerLayout.DrawerListener() {
            @Override
            public void onDrawerSlide(View drawerView, float slideOffset) {


            }
            //完全打开吐司
            @Override
            public void onDrawerOpened(View drawerView) {
                Toast.makeText(MainActivity.this,"打开了",Toast.LENGTH_SHORT).show();
                Log.i("TAG","打开");
            }
//完全关闭吐司
            @Override
            public void onDrawerClosed(View drawerView) {
                Toast.makeText(MainActivity.this,"关闭",Toast.LENGTH_SHORT).show();
                Log.i("TAG","关闭");
            }


            @Override
            public void onDrawerStateChanged(int newState) {


            }
        });
    }
}



//imageloader


package Tools;


import android.app.Application;
import android.graphics.Bitmap;
import android.os.Environment;


import com.nostra13.universalimageloader.cache.disc.impl.UnlimitedDiskCache;
import com.nostra13.universalimageloader.cache.disc.naming.Md5FileNameGenerator;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;
import com.nostra13.universalimageloader.core.ImageLoaderConfiguration;


import java.io.File;


/**
 * Created by admin on 2017/10/26.
 */


public class Imageloade extends Application {
    @Override
    public void onCreate() {
        super.onCreate();


        File cacheFile= new File(Environment.getExternalStorageDirectory()+"/"+"imgages");


        ImageLoaderConfiguration imageLoaderConfiguration = new ImageLoaderConfiguration.Builder(this)
                .threadPoolSize(2)//线程池的数量
                .threadPriority(4)
                .memoryCacheSize(2*1024*1024)//设置内存缓存区大小
                .diskCacheSize(20*1024*1024)//设置sd卡缓存区大小
                .diskCache(new UnlimitedDiskCache(cacheFile))//自定义缓存目录
                .writeDebugLogs()//打印日志内容
                .diskCacheFileNameGenerator(new Md5FileNameGenerator())//给缓存的文件名进行md5加密处理
                .memoryCacheExtraOptions(200,200)
                .build();


        ImageLoader.getInstance().init(imageLoaderConfiguration);
    }
    public static DisplayImageOptions getImageOptions(){


        DisplayImageOptions optionsoptions=new DisplayImageOptions.Builder()
                .cacheInMemory(true)//使用内存缓存
                .cacheOnDisk(true)//使用磁盘缓存
                .bitmapConfig(Bitmap.Config.RGB_565)//设置图片格式
                .build();


        return optionsoptions;


    }
}


//package Tools;


import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;


import com.example.admin.lujingyi1501c20171026.R;
import com.nostra13.universalimageloader.core.DisplayImageOptions;
import com.nostra13.universalimageloader.core.ImageLoader;


import java.util.List;


import Bean.Superclass;


/**
 * Created by admin on 2017/10/26.
 */


public class Myadapter extends BaseAdapter {
    Context context;
    List<Superclass.DataBean> data;


    public Myadapter(Context context, List<Superclass.DataBean> data) {
        this.context = context;
        this.data = data;
    }


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


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


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


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


    @Override
    public int getItemViewType(int position) {
        int a=0;
        if(data.get(position).getIMAGEURL()!=null){
            a=0;
        }else{
            a=1;
        }
        return a;
    }


    @Override
    public View getView(int position, View convertView, ViewGroup parent) {
        //根据返回的值来判断条目
        int type = getItemViewType(position);
        switch (type){
            case 0:
                viewhodler1 vh1;
                if(convertView==null){
                    convertView=View.inflate(context, R.layout.list1,null);
                    vh1=new viewhodler1();
                    vh1.tv1=(TextView) convertView.findViewById(R.id.tv1);
                    convertView.setTag(vh1);
                }else{
                    vh1= (viewhodler1) convertView.getTag();
                }
                vh1.tv1.setText(data.get(position).getTITLE().toString()+""+data.get(position).getSUBTITLE().toString());
                break;
            case 1:
                viewholder2 vh2;
                if(convertView==null){
                    convertView=View.inflate(context, R.layout.list2,null);
                    vh2=new viewholder2();
                    vh2.tv2=(TextView) convertView.findViewById(R.id.tv2);
                    vh2.iv=(ImageView)convertView.findViewById(R.id.iv);
                    convertView.setTag(vh2);
                }else{
                    vh2= (viewholder2) convertView.getTag();
                }
                ImageLoader.getInstance().displayImage(data.get(position).getIMAGEURL(),vh2.iv,Imageloade.getImageOptions());
                vh2.tv2.setText(data.get(position).getTITLE()+""+data.get(position).getSUBTITLE());
                break;
        }
        return convertView;
    }
    class viewhodler1{
        TextView tv1;
    }
    class viewholder2{
        TextView tv2;
        ImageView iv;
    }
}

//网络状态

package Tools;


import android.content.Context;
import android.content.DialogInterface;
import android.content.Intent;
import android.net.ConnectivityManager;
import android.net.NetworkInfo;
import android.provider.Settings;
import android.support.v7.app.AlertDialog;


/**
 * Created by admin on 2017/10/26.
 */


public class Net {
    public static boolean isWL(Context context) {


        ConnectivityManager manager = (ConnectivityManager)


                context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo info = manager.getActiveNetworkInfo();
        return (info != null && info.isAvailable());
    }


    public static void TanKuang(final Context context) {
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setMessage("网络链接中断,是否设置链接网络");
        builder.setNegativeButton("取消", null);
        builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
//                    两种跳转都可以跳转到到设置网络
//                Intent intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS);
                Intent intent = new Intent(Settings.ACTION_WIFI_SETTINGS);
//                    intent.setAction("android.settings.WIRELESS_SETTINGS");
                context.startActivity(intent);
            }
        });
        builder.create().show();
    }


}


//package Tools;


import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;


/**
 * Created by admin on 2017/10/26.
 */


public class Netutiils {
    //网络工具类
    public String getstring(String jsonurl){
        String str="";


        try {
            //创建一个url
            URL url=new URL(jsonurl);
            //网络请求
            HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection();
            //最大连接读取时间
            httpURLConnection.setConnectTimeout(5000);
            httpURLConnection.setReadTimeout(5000);
            //获得结果码并判断是否等于200
            int responseCode = httpURLConnection.getResponseCode();
            if(responseCode==200){
                InputStream inputStream = httpURLConnection.getInputStream();
                byte[] b=new byte[1024];
                int length=0;
                while ((length=inputStream.read(b))!=-1){
                    str+=new String(b,0,length);
                }
            }
        } catch (Exception e) {
            e.printStackTrace();
        }


        return str;
    }
}

05-17 3447
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值