PullToF

package com.bawie.com.shanggeyueyuekao;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.GridView;

import android.widget.ListView;
import android.widget.TextView;


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

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

public class Main2Activity extends AppCompatActivity {
    private int cid;
    private String url="http://120.27.23.105/product/getProductCatagory?cid="+cid;
    private PullToRefreshListView pulltoF;
    private Bean2 bean2;
    private  List<Bean2.DataBean> data = new ArrayList<>();
    private GridView grid_view;
    private TextView htext;
    private int operType=1;
    private int pageIndex=cid;
    private Hmyadapter hmyadapter;

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

        Intent intent = getIntent();

        cid = intent.getIntExtra("cid", this.cid);
        //list_view = findViewById(R.id.list_view);
        grid_view = findViewById(R.id.grid_view);
        pulltoF = findViewById(R.id.pulltoF);
        htext = findViewById(R.id.htext);
        initplv();
        getlist();


    }

    private void initplv() {
        pulltoF.setMode(PullToRefreshListView.Mode.BOTH);

        ILoadingLayout startLabels = pulltoF.getLoadingLayoutProxy(true, false);
        startLabels.setPullLabel("下拉刷新");//第一次下拉时显示的文字
        startLabels.setRefreshingLabel("正在拉");//下拉的过程中显示的文字
        startLabels.setReleaseLabel("放开刷新");//不能在下拉时,显示的文字

        ILoadingLayout endLabels = pulltoF.getLoadingLayoutProxy(false, true);
        endLabels.setPullLabel("上拉刷新");
        endLabels.setRefreshingLabel("正在载入...");
        endLabels.setReleaseLabel("放开刷新...");

        pulltoF.setOnRefreshListener(new PullToRefreshBase.OnRefreshListener2<ListView>() {
            @Override
            public void onPullDownToRefresh(PullToRefreshBase<ListView> refreshView) {
                operType =1;

                url="http://120.27.23.105/product/getProductCatagory?cid="+cid;
                getlist();
            }

            @Override
            public void onPullUpToRefresh(PullToRefreshBase<ListView> refreshView) {
                operType =2;

                url="http://120.27.23.105/product/getProductCatagory?cid="+cid;
                getlist();
            }
        });
    }

    private void getlist() {
        if(NetStateUtil.isConn(this)){
            ListMyTask listMyTask=new ListMyTask(new ListMyTask.ListIcall() {



                @Override
                public void ListUpdatejson(String strjson) {
                    Gson gson=new Gson();
                    Bean2  bean2 = gson.fromJson(strjson, Bean2.class);

                    if(operType==1){
                        data.clear();
                   }
                   data.addAll(bean2.getData());

                    setAdapter();

                    pulltoF.onRefreshComplete();
                }
            });

            listMyTask.execute("http://120.27.23.105/product/getProductCatagory?cid="+cid);
         }else{
            NetStateUtil.showNoNetWorkDlg(this);
        }
  }

    private void setAdapter() {
        if(hmyadapter==null){
            hmyadapter = new Hmyadapter(this,data);
            pulltoF.setAdapter(hmyadapter);
        }else{
            hmyadapter.notifyDataSetChanged();
        }


    }

}

==========================================================================================================================================================================================================

package com.bawie.com.shanggeyueyuekao;

import android.os.AsyncTask;

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

/**
 * Created by Administrator on 2018/1/12 0012.
 */

public class ListMyTask extends AsyncTask<String,Void,String> {


    private ListIcall listIcall;

    String str="";
    public ListMyTask(ListIcall listIcall) {
        this.listIcall = listIcall;
    }
    @Override
    protected String doInBackground(String... strings) {
        try {
            URL url=new URL(strings[0]);
            HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
            urlConnection.setConnectTimeout(5000);
            urlConnection.setReadTimeout(5000);
            urlConnection.setRequestMethod("GET");
            int responseCode = urlConnection.getResponseCode();
            if(responseCode==200){
                InputStream inputStream = urlConnection.getInputStream();
                str = ListStreamToString.listStreamToString(inputStream,"utf-8");
            }
        } catch (Exception e) {
            e.printStackTrace();
        }
        return str;
    }

    @Override
    protected void onPostExecute(String s) {
        super.onPostExecute(s);
        listIcall.ListUpdatejson(s);
    }

    public interface ListIcall{
        void ListUpdatejson(String strjson);
    }
}
==========================================================================================================================================================================================================

布局


<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout 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"
    xmlns:ptr="http://schemas.android.com/apk/res-auto"
    tools:context="com.bawie.com.shanggeyueyuekao.Main2Activity">

<com.handmark.pulltorefresh.library.PullToRefreshListView
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/pulltoF"
    ptr:ptrDrawable="@drawable/default_ptr_flip"
    ptr:ptrAnimationStyle="flip"
    ptr:ptrHeaderBackground="#383838"
    ptr:ptrHeaderTextColor="#FFFFFF"
    >
</com.handmark.pulltorefresh.library.PullToRefreshListView>
</RelativeLayout>

内容概要:本文介绍了一套针对智能穿戴设备的跑步/骑行轨迹记录系统实战方案,旨在解决传统运动APP存在的定位漂移、数据断层和路径分析单一等问题。系统基于北斗+GPS双模定位、惯性测量单元(IMU)和海拔传感器,实现高精度轨迹采集,并通过卡尔曼滤波算法修正定位误差,在信号弱环境下利用惯性导航补位,确保轨迹连续性。系统支持跑步与骑行两种场景的差异化功能,包括实时轨迹记录、多维度路径分析(如配速、坡度、能耗)、数据可视化(地图标注、曲线图、3D回放)、异常提醒及智能优化建议,并可通过蓝牙/Wi-Fi同步数据至手机APP,支持社交分享与专业软件导出。技术架构涵盖硬件层、设备端与手机端软件层以及云端数据存储,强调低功耗设计与用户体验优化。经过实测验证,系统在定位精度、续航能力和场景识别准确率方面均达到预期指标,具备良好的实用性和扩展性。; 适合人群:具备一定嵌入式开发或移动应用开发经验,熟悉物联网、传感器融合与数据可视化的技术人员,尤其是从事智能穿戴设备、运动健康类产品研发的工程师和产品经理;也适合高校相关专业学生作为项目实践参考。; 使用场景及目标:① 开发高精度运动轨迹记录功能,解决GPS漂移与断点问题;② 实现跑步与骑行场景下的差异化数据分析与个性化反馈;③ 构建完整的“终端采集-手机展示-云端存储”系统闭环,支持社交互动与商业拓展;④ 掌握低功耗优化、多源数据融合、动态功耗调节等关键技术在穿戴设备中的落地应用。; 阅读建议:此资源以真实项目为导向,不仅提供详细的技术实现路径,还包含硬件选型、测试验证与商业扩展思路,建议读者结合自身开发环境,逐步实现各模块功能,重点关注定位优化算法、功耗控制策略与跨平台数据同步机制的设计与调优。
内容概要:《QTools_V4.6.1用户手册》详细介绍了一款专为AutoCAD及CASS设计的辅助插件,涵盖测绘、设计等多个领域,提供超过400项实用功能。主要包括拓扑检查(如碎线、碎面、短边、弧段、锐角等检查)、图形与文字处理工具(如批量插图、文字对齐、编号、合并、替换等)、测绘专用工具(如断面、高程点、等高线、三角网处理)、以及图纸管理功能(如拆分、合并、解密、批量修改)等。插件支持云授权和加密锁两种激活方式,兼容AutoCAD 2004–2026及各版本CASS,并提供侧边栏、菜单栏、自定义命令等多种操作方式,同时具备自动更新与性能检测功能。; 适合人群:从事测绘、地理信息、建筑设计等相关领域的技术人员,熟悉AutoCAD/CASS操作,具备一定工程制图经验的从业人员。; 使用场景及目标:①用于地形图、地籍图、宗地图等专业图纸的自动化处理与质量检查;②提升CAD绘图效率,实现批量操作、数据提取、格式转换、拓扑修复等任务;③支持测绘项目中的断面绘制、高程分析、坐标展点、土方计算等核心流程;④解决图纸编辑受限、字体缺失、块无法分解等问题。; 阅读建议:建议结合实际项目操作手册中的功能命令,优先掌握常用快捷指令(如qq、tp、dm、gcd等),并利用“功能搜索”快速定位工具。使用前确保正确加载插件并完成授权,遇到问题可参考“常见问题”章节进行排查。定期关注更新内容以获取新功能和优化体验。
【飞机能量-机动性(E-M)特性】飞机评估的最大转弯速度(即机动速度)、最大可持续转弯速度和最大可持续载荷系数对应的真空速度(Matlab代码实现)内容概要:本文档主要围绕飞机能量-机动性(E-M)特性展开,重点介绍了如何通过Matlab代码实现飞机评估中的三个关键性能指标:最大转弯速度(即机动速度)、最大可持续转弯速度以及最大可持续载荷系数对应的真空速度。文档属于一系列科研技术资源的一部分,侧重于航空航天领域中飞行器动态性能的建模与仿真分析,旨在帮助研究人员理解和掌握飞机在不同飞行状态下的机动能力及其能量管理特性。文中提供的Matlab代码可用于实际计算和可视化这些性能参数,便于进一步研究和优化飞行器设计。; 适合人群:具备一定航空工程基础知识和Matlab编程能力的高校学生、科研人员及从事飞行器设计与仿真的工程师。; 使用场景及目标:①用于教学与科研中对飞机机动性能的理解与分析;②支撑飞行器总体设计、飞行动力学仿真及性能评估等工作;③为后续深入研究E-M图、能量机动理论及空战战术分析提供基础工具支持。; 阅读建议:建议读者结合飞行力学相关理论知识,逐步运行并调试所提供的Matlab代码,理解各参数含义及计算逻辑,同时可扩展应用于其他机型或飞行条件下的性能分析。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值