首页 > 其他分享 >Activity通过构造方法和普通方法向Fragment传递参数

Activity通过构造方法和普通方法向Fragment传递参数

时间:2023-03-25 14:58:24浏览次数:49  
标签:mParam1 构造方法 Fragment fragment Activity import BlankFragment2 public view

今天学习了Activity通过构造方法和普通方法向Fragment传递参数

这种方式的缺点是传递数据量较少

看一下效果:

 

 代码实现:

这里示例了两种方法,一个是用构造方法,一个是普通方法

activity

package com.example.dataapplication;

import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentTransaction;

import android.os.Bundle;
import android.view.View;

import com.example.dataapplication.fragment.BlankFragment1;
import com.example.dataapplication.fragment.BlankFragment2;

public class DynamicFragmentActivity extends AppCompatActivity {

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

        getSupportFragmentManager()
                .beginTransaction()
                .replace(R.id.frag_dy_1,BlankFragment2.class, null)
                .commit();

    }

    public void passDataClick(View view) {

        FragmentManager fragmentManager = getSupportFragmentManager();
        FragmentTransaction fragmentTransaction =  fragmentManager.beginTransaction();
        BlankFragment2 blankFragment2 = new BlankFragment2("这是构造方法传递的数据");
        fragmentTransaction.replace(R.id.frag_dy_1,blankFragment2).commit();
    }

    public void passDataClickNormal(View view) {
        FragmentManager fragmentManager = getSupportFragmentManager();
        Fragment fragment = fragmentManager.findFragmentById(R.id.frag_dy_1);

        if (fragment != null){
            ((BlankFragment2)fragment).setArgParam1("这是普通public传递的数据");
        }
    }
}

fragment

package com.example.dataapplication.fragment;

import android.os.Bundle;

import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;

import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.example.dataapplication.R;

public class BlankFragment2 extends Fragment {
    private static final String ARG_PARAM1 = "param1";
    private static final String ARG_PARAM2 = "param2";
    private String mParam1;
    private String mParam2;
    private TextView mTextView;
    public BlankFragment2(String data) {
        mParam1 = data;
    }
    public BlankFragment2() {
    }
    public void setArgParam1(String data){
        this.mParam1 = data;
        if (!TextUtils.isEmpty(mParam1)){
            mTextView.setText(mParam1);
        }
    }
    public static BlankFragment2 newInstance(String param1, String param2) {
        BlankFragment2 fragment = new BlankFragment2();
        Bundle args = new Bundle();
        args.putString(ARG_PARAM1, param1);
        args.putString(ARG_PARAM2, param2);
        fragment.setArguments(args);
        return fragment;
    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        if (getArguments() != null) {
            mParam1 = getArguments().getString(ARG_PARAM1);
            mParam2 = getArguments().getString(ARG_PARAM2);
        }
    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        return inflater.inflate(R.layout.fragment_blank2, container, false);
    }

    @Override
    public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
        super.onViewCreated(view, savedInstanceState);

        mTextView = view.findViewById(R.id.item_frag1);
        if (!TextUtils.isEmpty(mParam1)){
            mTextView.setText(mParam1);
        }
    }
}

 

标签:mParam1,构造方法,Fragment,fragment,Activity,import,BlankFragment2,public,view
From: https://www.cnblogs.com/rsy-bxf150/p/17254724.html

相关文章

  • Activity推送活动的时候引发的并发异常org.activiti.engine.ActivitiOptimisticLockin
    这是在推送任务的时候工作流并没有修改成功数据库内容所以抛出的异常,异常原因是是因为工作流事件中有修改工作流表数据的操作,然后推送任务的时候也有修改工作流表数据的操......
  • Activity管理
    AMS启动过程在Android应用启动流程中,AMS(ActivityManagerService)的启动是非常关键的。以下是AMS的启动过程:1.进程启动当我们启动一个应用时,系统会挂起Zygote进程。......
  • Fragment-更进一步
    Fragment是什么Fragment可以做到把屏幕划分成几块,然后进行分组,进行模块化的管理。并且可以更加方便的在运行过程中动态地更新Activity的用户界面Fragment并不能单独使用......
  • android Activity 转为 View
    Intentintent=newIntent(Activity.this,Activity.class);intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//Activity转为ViewWindowactivity=getLocalActivit......
  • android Intent的FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_REORDER_TO_FRONT
    ctivity的两种启动模式:FLAG_ACTIVITY_CLEAR_TOP和FLAG_ACTIVITY_REORDER_TO_FRONT1.如果已经启动了四个Activity:A,B,C和D。在DActivity里,我们要跳到B......
  • android 只起一个Activity实例
    在一个Activity中,多次调用startActivity()来启动另一个Activity,要想只生成一个Activity实例,方法有两种。[b]方法一:设置起动模式[/b]一个Activity......
  • Java基础知识点(继承中构造方法的的访问特点
    一:概述​1.父类的构造方法不会被子类继承。2.子类中的构造方法默认先访问父类中的无参构造,在执行自己。换句话来说,子类不能得到父类的的构造方法,子类进行构造方法默认先访问......
  • 【framework】Activity启动流程
    1前言ATMS启动流程介绍了ActivityTaskManagerService(ATMS)的启动和初始化流程,本文将介绍Activity的启动流程。由于Activity启动流程复杂,本文按进程将其拆分为3......
  • activity-程序活动单元
    Activity介绍activity是一个与用户交互的控件,主要来显示界面以及处理界面上一些控件的事件。Activity的生命周期启动,运行,暂停,停止,销毁生命周期方法oncreated:创建时......
  • 关于onActivityResult( ) 方法的使用
    关于onActivityResult()方法的使用使用场景:AActivity跳转到BActivity,按下返回键,将BActivity的部分数据带给AActivity注释:相当于,AActivity请求BActivity里的......