判断网络状态、Xutils3.0图片框架·····--狸菇凉_

此文章使用了mvp模式

model层的utils里面有一个bean,是自己的封装类

presenter层的basepersenter类和Mainpersenter类

view类里面有activity包、adapter包、iview包和application包


在此bean类就不写了


Basepersenter类

public class Basepersenter <T extends IMvpview> {


    private T imvpview;


    public T getImvpview() {
        return imvpview;
    }

    public void setImvpview(T imvpview) {
        this.imvpview = imvpview;
    }
}

Mainpersenter类

public class Mainpersenter extends Basepersenter<Maininterface> {



    //获得缓存的数据
    public void getCacheData(int index){

        String url="http://www.93.gov.cn/93app/data.do?channelId=0&&startNum="+index;

        MyUtils.httpCacheGet(url, MainBean.class, new MyUtils.UtilsInterface() {
            @Override
            public <T> void CallBack(T mclass) {
                getImvpview().CallBack_Pulldata((MainBean) mclass);
            }
        });

    }

    //获得网络数据
    public void getData(int index) {

        String url="http://www.93.gov.cn/93app/data.do?channelId=0&&startNum="+index;

        MyUtils.httpGet(url, MainBean.class, new MyUtils.UtilsInterface() {
            @Override
            public <T> void CallBack(T mclass) {
                getImvpview().CallBack_Pulldata((MainBean) mclass);
            }
        });


    }


    public void refreshData(int index) {

        String url="http://www.93.gov.cn/93app/data.do?channelId=0&&startNum="+index;

        MyUtils.httpGet(url, MainBean.class, new MyUtils.UtilsInterface() {
            @Override
            public <T> void CallBack(T mclass) {
                getImvpview().CallBack_Freshdata((MainBean) mclass);
            }
        });


    }

    public void setImagview(ImageView imagview,String url) {

                MyUtils.setImag(imagview,url);

    }

}

view层的activity包里的Mainactivity类

public class MainActivity extends AppCompatActivity implements Maininterface,XListView.IXListViewListener {

    private XListView list_view;
    private Mainpersenter mainpersenter;
    private MyPullAdapter myPullAdapter;
    private int index=0;



    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //进行网络判断,没有网络则跳转到设置

        ConnectivityManager systemService = (ConnectivityManager) getSystemService(CONNECTIVITY_SERVICE);
        NetworkInfo activeNetworkInfo = systemService.getActiveNetworkInfo();
        if (activeNetworkInfo!=null && activeNetworkInfo.isConnected()){

            Toast.makeText(this, "网络可用", Toast.LENGTH_SHORT).show();

        }else{

            AlertDialog.Builder builder = new AlertDialog.Builder(this);
            builder.setMessage("当前没有网络连接,点击确定前往设置");
            builder.setTitle("提醒");
            //确定按钮
            builder.setPositiveButton("确定", new DialogInterface.OnClickListener() {
                  @Override
                  public void onClick(DialogInterface dialog, int which) {
                      Intent intent=new Intent();
                      intent.setClassName("com.android.settings", "com.android.settings.Settings");
                      startActivity(intent);
                  }
              });
            //取消按钮
            builder.setNegativeButton("取消", new DialogInterface.OnClickListener() {
                @Override
                public void onClick(DialogInterface dialog, int which) {

                }
            });

            builder.show();
        }

        //初始化控件
        initView();
        //初始化数据
        initData();

    }

    private void initData() {
        //实例化v层对应的p层对象MainPersenter
        mainpersenter = new Mainpersenter();
        //将本层的引用传过去
        mainpersenter.setImvpview(this);
        //获得缓存的网络数据
        mainpersenter.getCacheData(0);
        //p层对象传给适配器,从而可以获得图片数据
        myPullAdapter.setMainpersenter(mainpersenter);



    }


    private void initView() {
        list_view = (XListView) findViewById(R.id.list_view);

        //设置监听
        list_view.setXListViewListener(this);
        //设置可加载更多,默认就可一刷新
        list_view.setPullLoadEnable(true);
        //实例化适配器对象
        myPullAdapter = new MyPullAdapter(this);
        list_view.setAdapter(myPullAdapter);



    }



    //加载更多数据时的回掉方法
    @Override
    public void CallBack_Pulldata(MainBean mainbean) {
        List<MainBean.DataBean> data = mainbean.getData();
       //给适配器传递数据
        myPullAdapter.setData(data);
        //刷新适配器
        myPullAdapter.notifyDataSetChanged();
    }

    //刷新数据时的回掉方法
    @Override
    public void CallBack_Freshdata(MainBean mainbean) {

        List<MainBean.DataBean> data = mainbean.getData();
        myPullAdapter.refreshData(data);
        myPullAdapter.notifyDataSetChanged();
    }

    //xlistview监听的刷新
    @Override
    public void onRefresh() {
        //此变量是url的参数之一,就是请求的数据起始角标
        //每次返回的数据是19条,所以第一次的角标是0;第二次就是20,,,以此类推
        index=index+20;
        mainpersenter.refreshData(index);
        list_view.stopRefresh(true);
    }
    //xlistview监听的加载更多
    @Override
    public void onLoadMore() {
        //此变量是url的参数之一,就是请求的数据起始角标
        //每次返回的数据是19条,所以第一次的角标是0;第二次就是20,,,以此类推
        index=index+20;
        mainpersenter.getData(index);
        list_view.stopLoadMore();
    }


}

view层的adapter包里的MypullAdapter类

public class MyPullAdapter extends BaseAdapter {


    private final Context mcontext;
    private ArrayList<MainBean.DataBean> data =new ArrayList<>();
    private ViewHolder viewHolder;
    private Mainpersenter mainpersenter;

    public MyPullAdapter(Context mainActivity) {
        this.mcontext = mainActivity;

    }

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

    @Override
    public Object getItem(int position) {
        return data.get(position).getTITLE();
    }

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

    @Override
    public View getView(int position, View convertView, ViewGroup parent) {

        if (convertView == null) {

            convertView = View.inflate(mcontext, R.layout.list_item, null);
            viewHolder = new ViewHolder();
            viewHolder.textView= (TextView) convertView.findViewById(R.id.text_my);
            viewHolder.imageView= (ImageView) convertView.findViewById(R.id.imag_);
            convertView.setTag(viewHolder);


        }else{

            viewHolder= (ViewHolder) convertView.getTag();

        }

            viewHolder.textView.setText(getItem(position).toString());
            mainpersenter.setImagview(viewHolder.imageView,data.get(position).getIMAGEURL());

        return convertView;
    }

    //加载更多,直接将将新数据添加到集合中
    public void setData(List<MainBean.DataBean> data) {
        if (data != null) {
            this.data.addAll(data);
        }


    }
    //刷新数据,先将原先集合的数据清空,再将新数据添加到集合中
    public void refreshData(List<MainBean.DataBean> data) {
        if (data != null) {
            this.data.clear();
            this.data.addAll(data);
        }


    }

    //此方法就是把mainpersenter的引用传递过来
    public void setMainpersenter(Mainpersenter mainpersenter) {
        this.mainpersenter=mainpersenter;

    }

    private class ViewHolder{

        TextView textView;
        ImageView imageView;

    }





}

view层的iview包里的IMvpView类,,什么都没有

public interface IMvpview  {
}

view层的iview包里的Maininterface类,

public interface Maininterface  extends IMvpview{

        //加载更多时的回掉方法
        void CallBack_Pulldata(MainBean mainbean);
        //刷新数据的回掉方法
        void CallBack_Freshdata(MainBean mainbean);

}










































内容概要:本文详细介绍了如何使用Matlab对地表水源热泵系统进行建模,并采用粒子群算法来优化每小时的制冷量和制热量。首先,文章解释了地表水源热泵的工作原理及其重要性,随后展示了如何设定基本参数并构建热泵机组的基础模型。接着,文章深入探讨了粒子群算法的具体实现步骤,包括参数设置、粒子初始化、适应度评估以及粒子位置和速度的更新规则。为了确保优化的有效性和实用性,文中还讨论了如何处理实际应用中的约束条件,如设备的最大能力和制冷/制热模式之间的互斥关系。此外,作者分享了一些实用技巧,例如引入混合优化方法以加快收敛速度,以及在目标函数中加入额外的惩罚项来减少不必要的模式切换。最终,通过对优化结果的可视化分析,验证了所提出的方法能够显著降低能耗并提高系统的运行效率。 适用人群:从事暖通空调系统设计、优化及相关领域的工程师和技术人员,尤其是那些希望深入了解地表水源热泵系统特性和优化方法的专业人士。 使用场景及目标:适用于需要对地表水源热泵系统进行精确建模和优化的情景,旨在找到既满足建筑负荷需求又能使机组运行在最高效率点的制冷/制热量组合。主要目标是在保证室内舒适度的前提下,最大限度地节约能源并延长设备使用寿命。 其他说明:文中提供的Matlab代码片段可以帮助读者更好地理解和复现整个建模和优化过程。同时,作者强调了在实际工程项目中灵活调整相关参数的重要性,以便获得更好的优化效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值