net,ViewPager内部类,

本文详细介绍了使用Retrofit框架结合RxJava进行异步网络请求的实现方式,包括设置头部信息、上传文件等操作,并展示了OkHttp库的基础用法,如GET、POST、PUT和DELETE请求的发送及响应处理。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

net

HttpServie
public interface HttpServie {
@Multipart
@POST
Observable upLoad(@Url String url,
@HeaderMap Map<String, String> map,
@Part MultipartBody.Part part);
}
HttpUtils
public class HttpUtils {
private Map<String, String> headMap = new HashMap<>();

public HttpUtils setHead(Map<String, String> headMap) {
    this.headMap = headMap;
    return this;
}

public HttpUtils upload(String url, File file) {
    Retrofit retrofit = new Retrofit.Builder().baseUrl("http://172.17.8.100")
            .addCallAdapterFactory(RxJava2CallAdapterFactory.create())
            .build();

    HttpServie service = retrofit.create(HttpServie.class);
    MediaType mediaType = MediaType.parse("multipart/form-data;charset=UTF-8");
    RequestBody body = RequestBody.create(mediaType, file);
    MultipartBody.Part part = MultipartBody.Part.createFormData("image", file.getName(), body);
    Observable<ResponseBody> ob = service.upLoad(url, headMap, part);
    ob.subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe(new Observer<ResponseBody>() {
                @Override
                public void onSubscribe(Disposable d) {

                }
                @Override
                public void onNext(ResponseBody responseBody) {
                    try {
                        mHttpListener.success(responseBody.string());
                    } catch (IOException e) {
                        e.printStackTrace();
                    }
                }

                @Override
                public void onError(Throwable e) {
                    mHttpListener.fail(e.getMessage());
                }
                @Override
                public void onComplete() {

                }
            });
    return this;
}


private HttpListener mHttpListener;

public void result(HttpListener mHttpListener) {
    this.mHttpListener = mHttpListener;
}

public interface HttpListener {
    void success(String data);

    void fail(String error);
}

}
OkHttp
public class OkHttp {

private Context context;
private Map<String,String> map=new HashMap<>();
private Handler handler=new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        if (msg.what==1000){
            String obj =(String)msg.obj;
            httpListener.success(obj);
        }else{
            String obj =(String)msg.obj;
            httpListener.faile(obj);
        }
    }
};

public OkHttp setheade(Map<String,String> headermap){
    this.map=headermap;
    return this;
}
private HttpListener httpListener;

public OkHttp get(String url){
    gethttp(url,0,null);
    return this;
}
public OkHttp post(String url, FormBody.Builder bobybuilder){
    gethttp(url,1,bobybuilder);
    return this;
}
public OkHttp put(String url, FormBody.Builder bobybuilder){
    gethttp(url,2,bobybuilder);
    return this;
}
public OkHttp del(String url, FormBody.Builder bobybuilder){
    gethttp(url,3,bobybuilder);
    return this;
}
public void gethttp(String url,int type,FormBody.Builder bobybuilder){
    OkHttpClient okHttpClient=new OkHttpClient().newBuilder().addInterceptor(new Interceptor() {
        @Override
        public Response intercept(Chain chain) throws IOException {
            Request request = chain.request();
            Log.i("aaaa",request.url().host());
            return chain.proceed(request);
        }
    }).build();
    Request.Builder builder=new Request.Builder();
    if (type==0){
        builder.get();
    }else if (type==1){
        builder.post(bobybuilder.build());
    }else if (type==2){
        builder.put(bobybuilder.build());
    }else if (type==3){
        builder.delete(bobybuilder.build());
    }
    Set<Map.Entry<String, String>> entries = map.entrySet();
    for (Map.Entry<String, String> head : entries){
        String key = head.getKey();
        String value = head.getValue();
        builder.addHeader(key,value);
    }

Log.i(“adaaaaaaaad”,map.toString());
builder.url(url);
Request request=builder.build();
final Message message=new Message();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
message.obj=e.getMessage();
message.what=1001;
handler.sendMessage(message);
}

        @Override
        public void onResponse(Call call,   Response response) throws IOException {
            message.what=1000;
            message.obj=response.body().string();
            handler.sendMessage(message);
        }
    });
}
public void request(HttpListener httpListener){
    this.httpListener =httpListener;
}
public interface HttpListener{
    void success(String data);
    void faile(String error);
}

}

ViewPager内部类

public class MainActivity extends AppCompatActivity {

private RadioGroup radio;
private RadioButton shou;
private RadioButton zhangdan;
private ViewPager viewpager;
private List<Fragment> list;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);
    //初始化
    radio = findViewById(R.id.radio_view);
    viewpager = findViewById(R.id.viewpager);
    list = new ArrayList<>();
    list.add(new ShouFragment());
    list.add(new QuanFragment());
    list.add(new CarFragment());
    list.add(new ZhangFragment());
    list.add(new MeFragment());
    viewpager.setAdapter(new Adapter(getSupportFragmentManager()));
    viewpager.setOffscreenPageLimit(5);
    //点击事件
    viewpager.setOnTouchListener(new View.OnTouchListener() {
        @Override
        public boolean onTouch(View v, MotionEvent event) {
            return false;
        }
    });
    radio.setOnCheckedChangeListener(new RadioGroup.OnCheckedChangeListener() {
        @Override
        public void onCheckedChanged(RadioGroup group, int checkedId) {
            switch (checkedId){
                case R.id.shou:
                    viewpager.setCurrentItem(0,false);
                    break;
                case R.id.quanzi:
                    viewpager.setCurrentItem(1,false);
                    break;
                case R.id.car:
                    viewpager.setCurrentItem(2,false);
                    break;
                case R.id.zhangdan:
                    viewpager.setCurrentItem(3,false);
                    break;
                case R.id.me:
                    viewpager.setCurrentItem(4,false);
                    break;
            }
        }
    });
}

private class Adapter extends FragmentPagerAdapter {

    public Adapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int i) {
        return list.get(i);
    }

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

}

内容概要:本文档详细介绍了Analog Devices公司生产的AD8436真均方根-直流(RMS-to-DC)转换器的技术细节及其应用场景。AD8436由三个独立模块构成:轨到轨FET输入放大器、高动态范围均方根计算内核和精密轨到轨输出放大器。该器件不仅体积小巧、功耗低,而且具有广泛的输入电压范围和快速响应特性。文档涵盖了AD8436的工作原理、配置选项、外部组件选择(如电容)、增益调节、单电源供电、电流互感器配置、接地故障检测、三相电源监测等方面的内容。此外,还特别强调了PCB设计注意事项和误差源分析,旨在帮助工程师更好地理解和应用这款高性能的RMS-DC转换器。 适合人群:从事模拟电路设计的专业工程师和技术人员,尤其是那些需要精确测量交流电信号均方根值的应用开发者。 使用场景及目标:①用于工业自动化、医疗设备、电力监控等领域,实现对交流电压或电流的精准测量;②适用于手持式数字万用表及其他便携式仪器仪表,提供高效的单电源解决方案;③在电流互感器配置中,用于检测微小的电流变化,保障电气安全;④应用于三相电力系统监控,优化建立时间和转换精度。 其他说明:为了确保最佳性能,文档推荐使用高质量的电容器件,并给出了详细的PCB布局指导。同时提醒用户关注电介质吸收和泄漏电流等因素对测量准确性的影响。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值