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.EditText;

public class MainActivity extends Activity {

    private Fragment03 fg3;
    private EditText et_main;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        et_main = (EditText) findViewById(R.id.et);//Activity的文本控件

        fg3 = new Fragment03();
        //获取fragment管理器
        FragmentManager fm = getFragmentManager();
        //打开事务
        FragmentTransaction ft = fm.beginTransaction();
        //把内容显示至帧布局
        ft.replace(R.id.fl, fg3);
        //提交
        ft.commit();
    }

    public void click1(View v){
        //把fragment01的界面显示至帧布局中
        //创建fragment对象
        Fragment01 fg1 = new Fragment01();
        //获取fragment管理器
        FragmentManager fm = getFragmentManager();
        //打开事务
        FragmentTransaction ft = fm.beginTransaction();
        //把内容显示至帧布局
        ft.replace(R.id.fl, fg1);
        //提交
        ft.commit();
    }

    public void click2(View v){
        //把fragment01的界面显示至帧布局中
        //创建fragment对象
        Fragment02 fg2 = new Fragment02();
        //获取fragment管理器
        FragmentManager fm = getFragmentManager();
        //打开事务
        FragmentTransaction ft = fm.beginTransaction();
        //把内容显示至帧布局
        ft.replace(R.id.fl, fg2);
        //提交
        ft.commit();
    }

    public void click3(View v){
        //把fragment01的界面显示至帧布局中
        //获取fragment管理器
        FragmentManager fm = getFragmentManager();
        //打开事务
        FragmentTransaction ft = fm.beginTransaction();
        //把内容显示至帧布局
        ft.replace(R.id.fl, fg3);
        //提交
        ft.commit();
    }

    public void click4(View v){//Activity的Button控件

        String text = et_main.getText().toString();

        //传递数据,setText是fg3的方法
        fg3.setText(text);
    }

    public void setText(String text){
        et_main.setText(text);
    }
}

fragment01:

package com.itheima.senddata;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.EditText;

public class Fragment01 extends Fragment {

    //返回的view对象会作为fragment01的内容显示在屏幕上
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        View v = inflater.inflate(R.layout.fragment01, null);

        final EditText et = (EditText) v.findViewById(R.id.et);//Fragment01的控件
        Button bt = (Button) v.findViewById(R.id.bt);
        bt.setOnClickListener(new OnClickListener() {
        //Fragment不是在context,所以click用监听,不直接写函数,因为直接写函数是在Activity中的。
            @Override
            public void onClick(View v) {
                String text = et.getText().toString();
                //把数据传递给activity,getActivity()拿到与Fragment关联的Activity,setText是Activity的方法
                ((MainActivity)getActivity()).setText(text);

            }
        });
        return v;
    }
}

fragment03:

package com.itheima.senddata;

import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

public class Fragment03 extends Fragment {

    private TextView tv;

    //返回的view对象会作为fragment03的内容显示在屏幕上
    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
            Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        View v = inflater.inflate(R.layout.fragment03, null);
        tv = (TextView) v.findViewById(R.id.tv);//Fragment03的控件
        return v;
    }

    public void setText(String text){
        tv.setText(text);
    }
}
时间: 2024-10-25 06:58:28

android78 Fragment和Activity 传递数据的相关文章

activity与fragment之间的传递数据

首先activity之间的数据传递就是 用intent和intent+bundle intent 传递 Intent i= new Intent(MainActivity.this,TheAty.class); i.putExtra("date","Hello SWWWWWW"); startActivity(i); 接受数据 Intent i =getIntent(); tv=(TextView) findViewById(R.id.tv); //通过"

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

Fragment+Activity传递数据

自己经常使用的知识点,每次到要用的时候都还要再查一次才能懂得使用,终于体会到总结的必要性了. Activity传递数据给Fragment Bundle bundle_fragment=new Bundle (); String selecter=ClassList.get (position); bundle_fragment.putString (ClassTag, selecter); StudentFragment studentFragment = new StudentFragment

Android开发:向下一个activity传递数据,返回数据给上一个activity

1.向下一个activity传递数据 activity1 1 Button button=(Button) findViewById(R.id.button1); 2 button.setOnClickListener(new OnClickListener() { 3 4 @Override 5 public void onClick(View v) { 6 Intent intent=new Intent("1111111111111111111"); 7 intent.addCa

两个Fragment之间如何传递数据

FragmentA启动FragmentB,做一些选择操作后,返回FragmentA,需要把FragmentB里面选择的数据传回来.有什么办法? Fragment之间不能直接通信,必须通过Activity来完成,具体步骤. 1. 在FragmentA中定义接口通信接口,通过该接口向Activity发送数据. public class FragmentA extends Fragment { private onButtonPressListener mListener; @Override pub

Android开发学习之路-回调实现Service向activity传递数据

开启服务的时候,如果我们是通过bindService来绑定服务并且要向服务传递数据,可以直接在Intent中设置bundle来达到效果,但是如果是我们需要从服务中返回一些数据到Activity中的时候,实现起来就有各种各样的方法,比如说使用回调,使用广播等等,今天说的是使用回调的方法. 新建一个工程,并编写一个服务: 1 public class MyService extends Service { 2 private boolean connecting = false; 3 private

Android fragment 想activity 传送数据

fragment可以通过定义 fragment的接口的方法来 想activity传送数据: 而activity则是通过实现 fragment的接口来接收fragment的送来的数据: 1.在fragment 的subclass 中定义一个接口 如 OnInterfaceOfFragmentone 接口: 在接口中定义一些方法:让activity来调用: public OnInterfaceOfFragmentone mCallback; //为Activity 定义一个接口: public in

在不同Activity传递数据(四种方式)

四种传递方法: 1.通过Intent传递数据: 2.通过静态变量传递数据: 3.通过剪切板传递数据: 4.通过全局对象传递数据: 分类介绍: 1.通过Intent传递数据: 代码如下: 布局: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_

android动态替换Fragment向下传递数据

以前传递数据都是使用Intent进行传递,但是intent是跳转,我们这个是动态替换 所以刚开始也是一脸懵逼,百度也百度不到,就自己慢慢摸索出来了: 话不多说,直接上代码:(主要核心代码加粗) package com.smartgentechnology;import android.content.Intent;import android.support.v4.app.Fragment;import android.support.v4.app.FragmentManager;import