最近做项目需要做一个文件管理器的cordova插件,用到了activity与fragment,那fragment怎么传递数据给activity呢?就是用接口实现。

1.定义接口(回调接口)

    public interface FragmentACallBack {//定义接口        void setData(JSONObject data);    }

2.在fragment onAttach方法里注册接口

    @Override    public void onAttach(Context context) {        super.onAttach(context);        fragmentACallBack = (FragmentACallBack) getActivity();//注册接口    }

3.接口传递数据 在需要传递数据的地方调用

listAdapter.setOnClickMy(new FolderDataAdapter.OnMyClick() {            @Override            public void monMyClick(int id) {                LogUtil.w("获取到的值="+id);                FileInfo finfo = data.get(id);                File file = new File(finfo.getFilePath());                if(file.exists()){                    JSONObject jsonObject = new JSONObject();                    try {                        jsonObject.put("fileName",finfo.getFileName());                        jsonObject.put("fullPath",finfo.getFilePath());                        jsonObject.put("fileSize", FileUtil.getFileSize(file));                        fragmentACallBack.setData(jsonObject);//接口传递数据                    } catch (JSONException e) {                        e.printStackTrace();                        fragmentACallBack.setData(null);                    }                }else{                    fragmentACallBack.setData(null);                    LogUtil.w("不存在");                }            }        });

4.activity实现接口,首先activity接入接口

implements FragmentACallBack会生成对应方法

然后在对应方法里接收回调的数据

    @Override    public void setData(JSONObject data) {//实现接口        LogUtil.w("activity获取到的参数="+data);        try {            Intent intent=new Intent();            intent.putExtra("fileName",data.getString("fileName"));            intent.putExtra("fullPath",data.getString("fullPath"));            intent.putExtra("fileSize",data.getString("fileSize"));            setResult(RESULT_OK,intent);        } catch (JSONException e) {            e.printStackTrace();        }        //关闭该activity,把返回值传回到cordovaPlugin插件        this.finish();    }

完结

更多相关文章

  1. xe5 android tts(Text To Speech)
  2. Android(安卓)JsBridge源码学习
  3. Android(安卓)刷新页面更新数据方法探究
  4. android日记-
  5. 【073】Android(安卓)数据存储(SQLite)
  6. Android(安卓)ListView字母索引(仿微信通讯录列表)
  7. 一起学android opengl之光照
  8. Android(安卓)ContentProvider共享数据
  9. Android视频流解码

随机推荐

  1. 按键,触摸屏流程分析
  2. Android利用soap WSDL与Webservice通信
  3. android 获取状态栏高度
  4. 在Android中调用图片、视频、音频、录音
  5. Android Retrofit2.0 上传单张图片和多张
  6. uses-permission android:name="android.
  7. Android(安卓)Notes 之 Tween动画 (2)自定
  8. Android判断设备是手机还是平板
  9. android时间对话框的核心代码
  10. Android 选择弹框 AlertDialog选择