Fragment与FragmentActivity间的数据通讯详细解决方案

news/2024/7/5 9:37:18

1.首先定义一个接口:

public interface IFragmentDataListener {
	public void transferMessage(); 
}


2.然后Fragment和FragmentActivity分别取实现IFragmentDataListener接口:

public class CompanyContactsFragment extends BaseFragment<CompanyContactsFragment> implements IFragmentDataListener

public class CompanyActivity extends BaseFragmentActivity<CompanyActivity> implements IFragmentDataListener


3.如果FragmentActivity中调用Fragment的方法:

          在FragmentActivity中:

	private IFragmentDataListener mFragmentDataListener; 
	@Override
	public void onAttachFragment(Fragment fragment) {
		// TODO Auto-generated method stub
		try {
			mFragmentDataListener = (IFragmentDataListener) fragment;
		} catch (Exception e) {
			// TODO: handle exception
		}
		super.onAttachFragment(fragment);
	}
	
	@Override
	public void transferMessage() {//在这里这个不用管
		// TODO Auto-generated method stub
		System.out.println("由Fragment传输过来的信息"); 
	}


        mFragmentDataListener.transferMessage();//在需要调用的地方,调用这个方法

        在 Fragment中:

	@Override
	public void transferMessage() {
		// TODO Auto-generated method stub
		System.out.println("由Activity传输过来的信息");  
		loadData(2);
	}


4.在Fragment中调用FragmentActivity中的方法:

        在FragmentActivity中:

        @Override
	public void transferMessage() {
		// TODO Auto-generated method stub
		System.out.println("由Fragment传输过来的信息"); 
		setTitleButtonSelect(1);
	}
        在Fragment中:

	private IFragmentDataListener mFragmentDataListener;  
	@Override
	public void onAttach(Activity activity) {
		// TODO Auto-generated method stub
		try {
			mFragmentDataListener = (IFragmentDataListener) activity;
		} catch (Exception e) {
			// TODO: handle exception
			throw new ClassCastException(activity.toString()+ "must implement mbtnListener");
		} 
		super.onAttach(activity);
	}

        @Override
        public void transferMessage() {//在这里这个不用管
            // TODO Auto-generated method stub
            System.out.println("由Activity传输过来的信息");  
        }

<span style="font-size:18px;"></span><pre name="code" class="java">       mFragmentDataListener.transferMessage();//在需要调用的地方,调用这个方法

 




http://www.niftyadmin.cn/n/1967389.html

相关文章

高度注意 Map 类集合 K / V 能不能存储 null 值的情况,如下表格

集合类         Key         Value         Super         说明 Hashtable       不允许为 null      不允许为 null     Dictionary       线程安全ConcurrentHashMap 不允许为 null      不允许为 null     …

token的作用及实现原理(一)

token在计算机身份认证中是令牌&#xff08;临时&#xff09;的意思&#xff0c;在词法分析中是标记的意思。一般作为邀请、登录系统使用。 1&#xff1a;request和session的区别 request request 指在一次请求的全过程中有效。即从http请求到服务器处理结束&#xff0c;返回响…

关于如何在XML中设置RadioButton默认选中

首先我遇到的问题是&#xff1a; <RadioGroupandroid:id"id/radioGroup"android:layout_width"fill_parent"android:layout_height"wrap_content"android:orientation"horizontal" ><RadioButtonandroid:layout_width"w…

IFE-24 笔记

1、捕获event.target事件&#xff0c;以及移除捕获的节点使其变色,设置为全局变量&#xff0c;其他函数中也可以调用 //选中某个框点击使其变色treeRoot.addEventListener(click,btnChangeC,false);function btnChangeC(event){//先清除上一次的变色reset();event.target.style…

简易ATM系统练习

执行简单的ATM功能&#xff1a;主要练习JavaOO参考了阿里巴巴java内部规范&#xff0c;希望自己所书写的程序能够更加的规范性&#xff1b;package com.lovo.ATM.bean;import java.util.Scanner; /*** ATM系统类* author 侯熙* version 1.1* since jdk1.8.0_25*/ public class …

EL:Expression language

在传统的jsp页面中&#xff0c;使用<% java代码 %>显示数据有许多的弊端。 比如类型转换&#xff0c;需要处理的null&#xff0c;代码参杂。 采用EL,JSTL等就方便了很多。 EL&#xff1a; 实例&#xff1a; ${requestScope.student.address.schoolAddress} 这里是request…

android 输入框 XML 设置于代码设置异同

android InputType 参数对应代码设置 详见android SDK android XML设置EditText输入格式参数对应constant列 android:inputTypeXXX android java代码设置EditText输入格式参数对应Description列 setInputType(XXXXXXXX)或者setRawInputType(XXXXXXXX) 需要注意XML部分参数值…

c++中的header-only library

不同于在java中&#xff0c;虽然在java中&#xff0c;有些第三方库只是做了桥接的功能&#xff0c;比如slf4j-log4j-api&#xff0c;但是在运行时他们仍然是需要的&#xff0c;所以最多只能说是松耦合做得很好。 但是在c中&#xff0c;一般我们应用第三方库的时候&#xff0c;是…