美文网首页
使用接口传递数据

使用接口传递数据

作者: 向着远方奔跑 | 来源:发表于2016-12-14 17:08 被阅读0次
  • 例如我的“极简天气”项目中的城市列表的适配器中需要将点击的城市名称传给天气信息界面的Activity中,城市列表是在一个Fragment中加载的,所以可以在城市列表的适配器(CityListAdapter)中写一个公用的接口,如下:
private CallBack mCallback;
public CityListAdapter (CallBack callback) {
        this.mCallback = callback;
    }
    
    public interface CallBack {
        public void getCityName(String cityname);
    }

然后在此类中将点击的城市信息获取到并调用接口CallBack中的方法getCityName传入cityname中,如下:

viewHolder.llMain.setOnClickListener(new OnClickListener() {
                   
                   @Override
                   public void onClick(View v) {
                       //点击全部城市响应
                       if(mCallback!=null){
                           
                           mCallback.getCityName(mAllCityList.get(position).getName());
                           
                       }else{
                           Log.e("mcallback-->", "null");
                       }
                   }
               });

此时,要先在应用此适配器的listFragment中实例化CityListAdapter,并接收接口的数据,即城市信息:

private CallBack mCallback;
public listFragment(CallBack callback) {
        this.mCallback = callback;
    }
cityListAdapter = new CityListAdapter(getActivity(), allCityList,
                hotCityList, new CallBack() {

                    @Override
                    public void getCityName(String cityname) {
                        // TODO Auto-generated method stub
                        if (cityname != null) {
                            
                            mCallback.getCityName(cityname);
                            
                            onBackkey();
                        } else {
                            Log.e("null", "kong");
                        }
                    }
                });

然后在activity中实例化listFragment,并接收城市信息:

transaction.replace(R.id.weather_layout, new listFragment(
                        new CallBack() {

                            @Override
                            public void getCityName(String cityname) {
                                
                                tempCity = cityname;

                                showWeather();
                            }

                        }));

若listFragment中另外一个适配器SearchResultAdapter也要传递数据给activity,则在SearchResultAdapter中:

public SearchResultAdapter (CallBack callback) {
        this.mCallback = callback;
    }
viewHolder.tvCityName.setOnClickListener(new OnClickListener() {
            
            @Override
            public void onClick(View v) {
                
                mCallback.getCityName(mSearchList.get(position).getName());
                
            }
        });

然后以相同方式在listFragment中接收:

private CallBack mCallback;
public listFragment(CallBack callback) {
        this.mCallback = callback;
    }

注:先创建一个接口的对象mCallback,然后再创建listFragment的构造方法,之后在下面才可以使用mCallback来调用接口的方法,即mCallback.getCityName(cityname);

searchResultAdapter = new SearchResultAdapter(getActivity(),
                searchCityList, new CallBack() {

                    @Override
                    public void getCityName(String cityname) {
                        // TODO Auto-generated method stub

                        mCallback.getCityName(cityname);

                        onBackkey();
                    }
                });

注:接口是一个公用的传递数据的工具,若要传递的数据类型相同,则只需在一个类中写一次,即可在此包中所用的类使用,但不能跳类传递,若A类中包含B类,B类中包含C类,要将C中的数据传给A类,只能先给B再给A

相关文章

  • APP开发实战64-Activity数据传递机制

    16.4.2数据传递机制 (1)使用Activity系统函数传递数据 (2)使用自定义接口函数传递数据 (3)使用...

  • 使用接口传递数据

    例如我的“极简天气”项目中的城市列表的适配器中需要将点击的城市名称传给天气信息界面的Activity中,城市列表是...

  • Vue-自定义事件

    在父组件使用prop 传递数据给子组件,子组件则是通过事件传递数据给父组件的。 Vue实例都会实现事件接口: 1....

  • EventBus库传递数据

    Android中数据传递使用较频繁,传递的方式也比较多,接口回调、广播、intent等等...,这介绍下Event...

  • 接口测试-数据的传递

    关键词:接口测试 数据的传递 多个接口一起测试,数据涉及多接口之间传递时,对数据的处理有两种方法: 1)将...

  • react学习第三篇:state,hooks,context

    一、props和state的区别 props是对外的接口(组件间传递数据),state是对内的接口(组件内传递数据...

  • 第五章 Activity跳转及Fragment

    在Activity之间数据传递 使用Intent的putExtra()方法传递数据 使用Bundle类传递数据使用...

  • api接口

    登录接口逻辑分析 1.接受用户传递参数2.处理数据3.返回数据 express 基本使用 1.安装express ...

  • Android开发最佳实践——1.接口设计

    Android开发最佳实践——1.接口设计 一个项目刚开始的时候,最需要确认的就是接口设计了:数据如何传递,使用什...

  • 使用VUE渲染后端数据

    后端:访问数据库,实现数据的增删改查,提供接口给前端提供服务通常使用JSON格式作为数据传递的规范[]数组或集合{...

网友评论

      本文标题:使用接口传递数据

      本文链接:https://www.haomeiwen.com/subject/gtoimttx.html