ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Fragment的通信,图文详解

2021-09-10 14:04:24  阅读:158  来源: 互联网

标签:Fragment 源码 详解 text import android 图文 Android view



package com.wust.twofragrement;



import android.app.Fragment;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.TextView;



import androidx.annotation.NonNull;

import androidx.annotation.Nullable;



/**

* ClassName: OneFragrement <br/>

* Description: <br/>

* date: 2021/5/27 16:26<br/>

*

* @author yiqi<br />

* @email:1820762465@qq.com

* @QQ:1820762465

* @since JDK 1.8

*/

public class TwoFragrement extends Fragment {



  private TextView tv_show_text;



  @Nullable

  @Override

  public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

      View view = inflater.inflate(R.layout.fragrement_two, null);

      tv_show_text = view.findViewById(R.id.tv_show_text);

      return view;

  }



  //第二步:在第二个fragment里公开一个修改自身TextView的方法

  public void setText(String str){

      tv_show_text.setText(str);

  }

} 

MainActivity的java代码


package com.wust.twofragrement;



import androidx.fragment.app.FragmentActivity;

import android.os.Bundle;



public class MainActivity extends FragmentActivity {



    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);



        //第一步,获取 Fragrement

        OneFragrement oneFragrement = new OneFragrement();

        TwoFragrement twoFragrement = new TwoFragrement();



        //第二步,占坑

        getFragmentManager().beginTransaction().replace(R.id.fl_one,oneFragrement,"one").commit();

        getFragmentManager().beginTransaction().replace(R.id.fl_two,twoFragrement,"two").commit();

    }

}

  • 方法二:使用回调

oneFragment的java代码


package com.wust.twofragrement;





import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;



import androidx.annotation.NonNull;

import androidx.annotation.Nullable;

import android.app.Fragment;

import android.widget.Button;

import android.widget.EditText;



/**

 * ClassName: OneFragrement <br/>

 * Description: <br/>

 * date: 2021/5/27 16:26<br/>

 *

 * @author yiqi<br />

 * @email:1820762465@qq.com

 * @QQ:1820762465

 * @since JDK 1.8

 */

public class OneFragrement extends Fragment {



    private Button btn_set_text;

    private EditText et_input_text;

    private onReceiveData mOnReceiveData;



    @Nullable

    @Override

    public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.fragrement_one, null);



        et_input_text = view.findViewById(R.id.et_input_text);

        btn_set_text = view.findViewById(R.id.btn_set_text);



        btn_set_text.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                //第三步:调用

                mOnReceiveData.receiveData(et_input_text.getText().toString());

            }

        });

        return view;

    }



    //第一步:定义接口

    public interface onReceiveData{

        void receiveData(String s);

    }



    //第二步:暴露接口

    public void setOnReceiveDataListener(onReceiveData onReceiveData){

        this.mOnReceiveData = onReceiveData;

    }

} 

twoFragment的java代码


package com.wust.twofragrement;



import android.app.Activity;

import android.app.Fragment;

import android.os.Bundle;

import android.view.LayoutInflater;

import android.view.View;



### 面试复习路线,梳理知识,提升储备

自己的知识准备得怎么样,这直接决定了你能否顺利通过一面和二面,所以在面试前来一个知识梳理,看需不需要提升自己的知识储备是很有必要的。

关于知识梳理,这里再分享一下我面试这段时间的复习路线:(以下体系的复习资料是我从各路大佬收集整理好的)

**[CodeChina开源项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》](

)**

* **架构师筑基必备技能**
* **Android高级UI与FrameWork源码**
* **360°全方面性能调优**
* **解读开源框架设计思想**
* **NDK模块开发**
* **微信小程序**
* **Hybrid 开发与Flutter**

![](https://www.icode9.com/i/ll/?i=img_convert/1379668d6f47b8ccc148f457a7ec2804.png)

知识梳理完之后,就需要进行查漏补缺,所以针对这些知识点,我手头上也准备了不少的电子书和笔记,这些笔记将各个知识点进行了完美的总结:

![Android开发七大模块核心知识笔记](https://www.icode9.com/i/ll/?i=img_convert/78c0c9212054e56ecd5ff5d3b1a3ac0a.png)

**《960全网最全Android开发笔记》**

![](https://www.icode9.com/i/ll/?i=img_convert/998108ff340d5d5adf80571e3455d001.png)

**《379页Android开发面试宝典》**

历时半年,我们整理了这份市面上最全面的安卓面试题解析大全
包含了腾讯、百度、小米、阿里、乐视、美团、58、猎豹、360、新浪、搜狐等一线互联网公司面试被问到的题目。熟悉本文中列出的知识点会大大增加通过前两轮技术面试的几率。

如何使用它?

1.可以通过目录索引直接翻看需要的知识点,查漏补缺。
2.五角星数表示面试问到的频率,代表重要推荐指数

![](https://www.icode9.com/i/ll/?i=img_convert/a96339d11bb41086d7b18aec2d68eb21.png)

**《507页Android开发相关源码解析》**

只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。

> **本文已被[腾讯CODING开源托管项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》](https://ali1024.coding.net/public/P7/Android/git)收录,自学资源及系列文章持续更新中...**
[外链图片转存中...(img-dBbVee9f-1631253479098)]

**《507页Android开发相关源码解析》**

只要是程序员,不管是Java还是Android,如果不去阅读源码,只看API文档,那就只是停留于皮毛,这对我们知识体系的建立和完备以及实战技术的提升都是不利的。

真正最能锻炼能力的便是直接去阅读源码,不仅限于阅读各大系统源码,还包括各种优秀的开源库。

> **本文已被[腾讯CODING开源托管项目:《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》](https://ali1024.coding.net/public/P7/Android/git)收录,自学资源及系列文章持续更新中...**

标签:Fragment,源码,详解,text,import,android,图文,Android,view
来源: https://blog.csdn.net/m0_61331237/article/details/120220625

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有