getArguments() 返回 null Android studio
我正在尝试使用捆绑包将字符串值从活动传递到片段,但是getArguments()返回null,因此对我而言有效工作。 (应用程序从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);
}
}
mainActivity2代码:
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);
}
}
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// ///////////////////////////////////////////////////////////////
I'm trying to use bundle to pass a string value from activity to fragment but getArguments() returns null so it dosent work for me.
( app starts from MainActivity2)
fragment code:
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);
}
}
MainActivity2 code:
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);
}
}
///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
在第一个活动中:
在第二个活动中:
此代码适用于活动,但我不知道它是否适合片段
In the first activity:
In the second activity:
This code work for activitys but I dont know if it's work for fragments