在Android开发中,如果你尝试通过Intent传递额外的数据(Extra)从Fragment到Activity,但是只得到了空值,这通常是由于以下几个原因造成的:
确保你在Fragment中正确地创建了Intent并设置了额外值。例如:
Bundle bundle = new Bundle();
bundle.putString("key", "value");
Intent intent = new Intent(getActivity(), YourActivity.class);
intent.putExtras(bundle);
startActivity(intent);
在Activity中,确保你使用了正确的键来获取数据。例如:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_your);
Intent intent = getIntent();
if (intent != null && intent.getExtras() != null) {
String value = intent.getStringExtra("key");
// 使用value
}
}
确保在Fragment的onResume()
或者onViewCreated()
之后再启动Activity,这样可以保证数据已经准备好了。
确保传递的数据类型和接收的数据类型是一致的。例如,如果你传递的是一个字符串,那么在接收的时候也应该获取字符串类型的数据。
Fragment中的代码:
Bundle bundle = new Bundle();
bundle.putString("key", "这是要传递的值");
Intent intent = new Intent(getActivity(), YourActivity.class);
intent.putExtras(bundle);
startActivity(intent);
Activity中的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_your);
Intent intent = getIntent();
if (intent != null && intent.getExtras() != null) {
String value = intent.getStringExtra("key");
// 使用value
Log.d("YourActivity", "接收到的值: " + value);
}
}
确保遵循以上步骤,你应该能够成功地从Fragment传递数据到Activity。如果问题仍然存在,请检查是否有其他代码干扰了这个过程,或者是否有运行时异常导致数据没有被正确设置或获取。
领取专属 10元无门槛券
手把手带您无忧上云