android-fragments getArguments()返回空Android工作室

dnph8jn4  于 2022-11-14  发布在  Android
关注(0)|答案(1)|浏览(128)

我尝试使用bundle将字符串值从Activity传递到fragment,但getArguments()返回空值,因此它无法为我工作。(应用从MainActivity2开始)
片段代码:

public class ProfileFragment extends Fragment {

TextView results;
    public ProfileFragment() {
        // Required empty public constructor
    }

    @Override
    public void onSaveInstanceState(@NonNull Bundle outState) {
        super.onSaveInstanceState(outState);

    }

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
       setRetainInstance(true);

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {        
        String strtext = getArguments().getString("edttext");
       
        return inflater.inflate(R.layout.fragment_profile, container, false);

    }
}

主要活动2代码:

public class MainActivity2 extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
    }
    
    public void Clicked(View view) {
        Bundle bundle = new Bundle();
        bundle.putString("edttext", "From Activity");

// set Fragmentclass Arguments
ProfileFragment profileFragment = new ProfileFragment();
profileFragment.setArguments(bundle);
Intent intent=new Intent(this,MainActivity.class);
startActivity(intent);
}
}

///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

yshpjwxd

yshpjwxd1#

在第一个活动中:

Intent intent = new Intent(MainActivity.this, SecondActivity.class);

Bundle bundle = new Bundle();
bundle.putString("name", name);
bundle.putString("my_aa", my_aa);
intent.putExtras(bundle);

startActivity(intent);

在第二个活动中:

Bundle bundle = getIntent().getExtras();

    if(bundle != null)
    {
        String name = bundle.getString("name");
        String aa = bundle.getString("my_aa");
    }

这段代码适用于活动,但我不知道它是否适用于片段

相关问题