Android fragment 想activity 传送数据

fragment可以通过定义 fragment的接口的方法来 想activity传送数据;

而activity则是通过实现 fragment的接口来接收fragment的送来的数据;

1.在fragment 的subclass 中定义一个接口 如

OnInterfaceOfFragmentone 接口;

在接口中定义一些方法;让activity来调用;

 public  OnInterfaceOfFragmentone mCallback;
//为Activity 定义一个接口;
    public interface OnInterfaceOfFragmentone{
        public void OnContactEvent(String index);

    }
    @Override
    public void onAttach(Activity activity){
        super.onAttach(activity);
         // 这是为了保证Activity容器实现了用以回调的接口。如果没有,它会抛出一个异常。
        try {
            mCallback=(OnInterfaceOfFragmentone)activity;
        } catch (ClassCastException e) {
            throw new ClassCastException(activity.toString()
                    + " must implement OnHeadlineSelectedListener");
        }
    }

2. 在fragment的subclass fragmentone 中调用接口的方法来向activity传递信息如

    /*fragment 可以通过实现 接口 OnInterfaceOfFragmentone 的mCallback 实例 调用接口的方法OnContactEvent (或者接口的其他方法))
     *
     * mCallback.OnContactEvent(_index);
     *
     * 用户可以通过getInterfaceEvent() 将信息传递给Activity
     * */
    public void getInterfaceEvent( String _index){
        mCallback.OnContactEvent(_index);
    }

可以通过fragment的某个用户点击事件 来调用该方法;

//例如;
        getInterfaceEvent("这是我要传给activity的数据 ");

3.在activity中 实现fragmentone.OnInterfaceOfFragmentone 的接口

public class MainActivity extends FragmentActivity implements
        fragmentone.OnInterfaceOfFragmentone {//实现fragmentone.OnInterfaceOfFragmentone 的接口

3.1 重写 fragmentone.OnInterfaceOfFragmentone 的接口的方法

OnContactEvent(String index);

//实现fragmentone 的接口OnInterfaceOfFragmentone 的方法OnContactEvent()
    //把fragment 的数据通过index 传进来
    //
    @Override
    public void OnContactEvent(String index) {
        // TODO Auto-generated method stub
        final String sub=index;
    Log.e("fragment give me data is",sub);
    }

3.2得到的结果是这样的

时间: 2024-07-30 07:25:46

Android fragment 想activity 传送数据的相关文章

Android——Fragment和Activity之间的通信+Frangment生命周期

Android--Fragment和Activity之间的通信+Frangment生命周期 Fr'agment和Activity之间的通信 1.在Fragment中声明一个接口. 2.在Activity中实现在Fargment中声明的接口. 3.在Fragment中声明一个接口对象. 4.在Frangment的生命周期Onattach方法中判断当前Activity是否实现了此Fragment中声明的接口.如果已实现,就把当前Activity转换成接口对象. 5.调用Activity中实现的方法=

Activity与Fragment数据传递之Fragment从Activity获取数据

整理Fragment与Activity之间的数据交换,大体上包括三种: 1.Fragment从Activity获取数据 2.Activity从Fragment获取数据 3.Fragment之间获取数据通常,如果Activity向不同的Activity传递数据,最常用的是通过Intent.putExtra()方法,将简单类型的数据或可序列化的数据保存在Intent对象中,然后在目标Activity中使用getXxx(getInt,getString等)方法获得这些数据.  从Activity向Fr

android Fragment与Activity交互,互相发数据(附图具体解释)

笔者最近看官方training.发现了非常多实用又好玩的知识. 当中.fragment与Activity通信就是一个. fragment与Activity通信主要是两点: 1.fragment传递信息给Activity 此点是通过在fragment中定义接口与Activity共享数据. 2.Activity传递信息给fragment 此点主要是通过fragment的getArgument()和setArgument()两个函数传递bundle来传递. 效果:(最后附上源代码) 主要流程: 1.在

Android两个Activity传递数据,onActivityResult获取结果时Intent为空问题

    环境:设两个Activity A 和 B,A通过调用startActivityForResult()向B传送数据,B收到数据经过处理后将数据放入Intent使用setResult(resultcode,inten)返回. 现象:在A的onActivityResult(int requestCode, int resultCode, Intent data) 中获取数据时,Intent为空,无法获取数据. 原因:在Activity B中,setResult的调用须在Activity的声明周

Android Fragment和Activity的交互介绍

Fragment和Activity的交互 一个Fragment的实例总是和包含它的Activity直接相关. fragment可以通过getActivity() 方法来获得Activity的实例,然后就可以调用一些例如findViewById()之类的方法. 如: View listView = getActivity().findViewById(R.id.list); 但是注意调用getActivity()时,fragment必须和activity关联(attached to an acti

Android Adapter、Activity回传数据、发送短信

一.重写BaseAdapter的getView方法 1 @Override 2 public View getView(int position, View convertView, ViewGroup parent) { 3 View view; 4 if (convertView == null) { 5 view = View.inflate(getApplicationContext(), R.layout.item_phone, null); 6 } else { 7 view = c

android78 Fragment和Activity 传递数据

Activity: package com.itheima.senddata; import android.os.Bundle; import android.app.Activity; import android.app.FragmentManager; import android.app.FragmentTransaction; import android.view.Menu; import android.view.View; import android.widget.EditT

Android tabhost 切换activity时数据不刷新

解决方案 在android中,使用tabHost的时候,如果tab被点击,该tab所对应的activity被加载了,从别的tab切换回来的时候,activity不会再次被创建了(onCreate),所以要想每次点击tab都刷新activity,有如下方法: 方法1 把要刷新的对象添加到onresume 1 @Override 2 public void onResume() { 3 super.onResume(); 4 //代码 5 } 每次切换tab,该activity会调用次方法onres

android 应用程序Activity之间数据传递与共享的几种途径

一.基于消息的通信机制 Intent ---boudle ,extraAndroid为了屏蔽进程的概念,利用不同的组件[Activity.Service]来表示进程之间的通信!组件间通信的核心机制是Intent,通过Intent可以开启一个Activity或Service,不论这个Activity或Service是属于当前应用还是其它应用的!                                                                 Intent包含两部分:1