CELA

MainActivity

public class MainActivity extends AppCompatActivity {
    private DrawerLayout drawerLayout;
    private LinearLayout linMenu;
    private List<String> list;
    private List<UserBean.DataBean> data;
    private ListView listView, lv;
    private String sj;
    private int num = 1;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        listView = findViewById(R.id.lv);
        drawerLayout = findViewById(R.id.mydrawer);
        linMenu = findViewById(R.id.lin_menu);
        Init();
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, list);
        listView.setAdapter(adapter);
        listView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
                String s = list.get(i);
                drawerLayout.closeDrawer(linMenu);

                getSupportFragmentManager().beginTransaction().replace(R.id.fr_content,new ContentFragment()).commit();
            }
        });
    }
    private void Init(){
        list = new ArrayList<>();
        list.add("我的消息");
        list.add("教学视频");
        list.add("我的成绩");
        list.add("学车日记");
        list.add("文章收藏");
        list.add("文章足迹");
        list.add("教员中心");
        list.add("设置");
    }
}

ContentFragment

public class ContentFragment extends Fragment {
    private int pageIndex = 1;
    private int operType = 1;
    List<UserBean.DataBean> list = new ArrayList<>();
    private String url="http://www.93.gov.cn/93app/data.do?channelId=0&startNum="+pageIndex;
    private MyAdapter adapter;
    private PullToRefreshListView plv;
    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View view = inflater.inflate(R.layout.content, container, false);
        plv = view.findViewById(R.id.plv);
        initplv();
        requestNetData();
        return view;
    }
    private void requestNetData(){
        if (NetStateUtil.isConn(getActivity())){
            MyTask myTask = new MyTask(new MyTask.Icallbacks() {
                @Override
                public void updateUiByjson(String s) {
                    Log.d("tag",s);
                    Gson gson = new Gson();
                    UserBean userBean = gson.fromJson(s, UserBean.class);
                    if (operType==1){
                        list.clear();
                    }
                    list.addAll(userBean.getData());
                    setLvAdapter();
                    plv.onRefreshComplete();
                }
            });
            myTask.execute(url);
        }else {
            NetStateUtil.showNoNetWorkDlg(getActivity());
        }
    }
    private void initplv(){
        plv.setMode(PullToRefreshBase.Mode.BOTH);
        ILoadingLayout proxy = plv.getLoadingLayoutProxy(true, false);
        proxy.setPullLabel("下拉刷新");
        proxy.setRefreshingLabel("正在拉");
        proxy.setReleaseLabel("放开刷新");
        ILoadingLayout proxy1 = plv.getLoadingLayoutProxy(false, true);
        proxy1.setPullLabel("上拉刷新");
        proxy1.setRefreshingLabel("正在载入...");
        proxy1.setReleaseLabel("放开刷新");
        plv.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                operType=1;
                pageIndex=1;
                url="http://www.93.gov.cn/93app/data.do?channelId=0&startNum="+pageIndex;
                requestNetData();
            }
            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                operType=2;
                pageIndex++;
                url="http://www.93.gov.cn/93app/data.do?channelId=0&startNum="+pageIndex;
                requestNetData();
            }
        });
    }
    private void setLvAdapter(){
        if (adapter==null){
            adapter = new MyAdapter(list,getActivity());
            plv.setAdapter(adapter);
        }else {
            adapter.notifyDataSetChanged();
        }
    }
}

MyAdapter


public class MyAdapter extends BaseAdapter {
    private List<UserBean.DataBean> list;
    private Context context;
    private final DisplayImageOptions options;
    private final int ITEM_TITLE=0;
    private final int ITEM_IMAGE=1;
    public MyAdapter(List<UserBean.DataBean> list, Context context) {
        this.list = list;
        this.context = context;
        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)//设置图片色彩模式 1px=2字节
                .imageScaleType(ImageScaleType.EXACTLY)//设置图片的缩放模式
                .displayer(new RoundedBitmapDisplayer(100))//设置圆角 30代表半径 自定义
                .build();
    }
    @Override
    public int getViewTypeCount() {
        return 2;
    }
    @Override
    public int getItemViewType(int position) {
        if(position%2==0){//偶数
            return ITEM_IMAGE;
        }
        return ITEM_TITLE;//基数
    }
    @Override
    public int getCount() {
        return list.size();
    }
    @Override
    public Object getItem(int i) {
        return list.get(i);
    }
    @Override
    public long getItemId(int i) {
        return i;
    }
    @Override
    public View getView(int i, View convertView, ViewGroup viewGroup) {
        int type = getItemViewType(i);
        if(type==ITEM_IMAGE){
            if(convertView==null){
                convertView=View.inflate(context,R.layout.item,null);
            }
            TextView tv= convertView.findViewById(R.id.tv);
            ImageView img= convertView.findViewById(R.id.img);
            tv.setText(list.get(i).getTITLE());
            ImageLoader.getInstance().displayImage(list.get(i).getIMAGEURL(),img,options);
            return convertView;
        }{
            if(convertView==null){
                convertView=View.inflate(context,R.layout.itemss,null);
            }
            TextView tv= convertView.findViewById(R.id.tv);
            tv.setText(list.get(i).getTITLE());
        }
        return  convertView;
    }
}

MyTask


public class MyTask extends AsyncTask<String, Void, String> {
    private Icallbacks icallbacks;
    private MyTask(){}
    MyTask(Icallbacks icallbacks){
        this.icallbacks = icallbacks;
    }
    @Override
    protected String doInBackground(String... params) {
        String str = "";
        try {
            URL url = new URL(params[0]);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setRequestMethod("GET");
            connection.setReadTimeout(5000);
            connection.setConnectTimeout(5000);
            if (connection.getResponseCode()==200){
                InputStream inputStream = connection.getInputStream();
                str = StreamToString.streamToStr(inputStream,"utf-8");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return str;
    }
    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        icallbacks.updateUiByjson(s);
    }
    public interface Icallbacks{
        void updateUiByjson(String s);
    }
}

NetStateUtil

public class NetStateUtil {
    public static boolean isConn(Context context){
        boolean bisConnFlag = false;
        ConnectivityManager conManager = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo network = conManager.getActiveNetworkInfo();
        if (network!=null){
            bisConnFlag = conManager.getActiveNetworkInfo().isAvailable();
        }
        return bisConnFlag;
    }
    public static void showNoNetWorkDlg(final Context context){
        AlertDialog.Builder builder = new AlertDialog.Builder(context);
        builder.setIcon(R.mipmap.ic_launcher)
                .setTitle(R.string.app_name)
                .setMessage("当前无网络").setPositiveButton("设置", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialogInterface, int i) {
                Intent intent = null;
                if (Build.VERSION.SDK_INT>10){
                    intent = new Intent(Settings.ACTION_WIRELESS_SETTINGS);
                }else {
                    intent = new Intent();
                    intent.setClassName("com.android.settings", "com.android.settings.WirelessSettings");
                }
                context.startActivity(intent);
            }
        }).setNegativeButton("知道了",null).show();
    }
}

StreamToString

public class StreamToString {

    public static String streamToStr(InputStream inputStream, String chartSet){
        StringBuilder builder = new StringBuilder();
        try {
            BufferedReader br = new BufferedReader(new InputStreamReader(inputStream,chartSet));
            String con;
            while ((con = br.readLine())!=null){
                builder.append(con);
            }
            br.close();
            return builder.toString();
        } catch (Exception e) {
            e.printStackTrace();
        }
        return "";
    }

}

MyApp

public class MyApp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Log.d("zzz","App入口");
        Toast.makeText(this,"app", Toast.LENGTH_SHORT).show();
        File cachefile = new File(Environment.getExternalStorageDirectory().getPath()+"/images");
        ImageLoaderConfiguration configuration=new ImageLoaderConfiguration.Builder(this)
                .memoryCacheExtraOptions(400, 700)//缓存图片最大的长和宽
                .threadPoolSize(3)//线程池的数量
                .threadPriority(4)
                .memoryCacheSize(20*1024*1024)//设置内存缓存区大小
                .diskCacheSize(80*1024*1024)//设置sd卡缓存区大小
                .diskCache(new UnlimitedDiskCache(cachefile))//自定义sd卡缓存目录
                .writeDebugLogs()//打印日志内容
                .diskCacheFileNameGenerator(new Md5FileNameGenerator())//给缓存的文件名进行md5加密处理
                .build();
        ImageLoader.getInstance().init(configuration);
    }
}


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

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值