我尝试使用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);
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
1条答案
按热度按时间yshpjwxd1#
在第一个活动中:
在第二个活动中:
这段代码适用于活动,但我不知道它是否适用于片段