• 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);
        }
    }
  • 相关阅读:
    Web相关工具
    web服务器之ApacheCookie 和 session
    web服务器之Apache语法与使用
    Java高并发3-中断线程以及isInterrupted与interrupted区别
    从零开始学VUE之Vue CLI(Cli 2.x 初始化项目)
    从零开始学VUE之Vue CLI(全局安装cli-init)
    从零开始学VUE之Vue CLI(全局安装 CLI)
    从零开始学VUE之淘宝镜像Cnpm安装
    IDEA 过期时间 试用时间 重置插件
    ElementUI el-checkbox 点击Label不取消复选框的选中状态
  • 原文地址:https://www.cnblogs.com/yaowen/p/4932051.html
Copyright © 2020-2023  润新知