解决思路是:一个activity向另一个activity中传值,接收到数据后再传给fragment
数据传递:activiy1--->activity2--->fragment
步骤1:获取activity1中edittext值,然后用inten传递给activity2
//获取edittext编辑框的值
private EditText mname;
mname=findViewById(R.id.minsu_name);
String name=mname.getText().toString().trim();
//从activity1传给activity2
Intent intent=new Intent(activity1.this,activity2.class);
intent.putExtra("name",name);
startActivity(intent);
步骤2:在activity2中接收传递过来的值,并传递给fragment
//先创建fragment文件,并在activity2中声明并初始化
private Fragment fragment;
Fragment fragment=new Fragment();
//接收数据,注意getStringExtra()中的字符串必须和putExtra()中的第一个字符串保持一致
Intent intent=getIntent();
String name = intent.getStringExtra("name");
// 向fragment传递数据
Bundle bundle=new Bundle();
bundle.putString("name",name);
fragment.setArguments(bundle);
//nav_contatiner是activity2的xml文件中的fragment控件的id,用replace()方法替换掉activi2中的fragment
FragmentTransaction transaction=getSupportFragmentManager().beginTransaction();
transaction.replace(R.id.nav_container,fragment).commitNow();
步骤3:fragment接收数据并显示
//在frament文件中的onCreateView方法中接收数据并显示
//声明并初始化一个textview
TextView textname = root.findViewById(R.id.text_name);
//接收数据并用textview控件的setText()方法改写text内容,传递的数据是name
Bundle bundle=getArguments();
String name=bundle.getString("name");
textname.setText(name);
学习记录用的,若有错请指正。