这听起来很愚蠢,但我使用bundle来存储我的数据,并试图将此bundle从片段传递到托管活动,并使用测试数据吐司,但吐司是空的!我找不到为什么,因为我确信正确填写数据发生这种情况的原因 我的片段中的代码是:获得null传递字符串从片段到活动使用包
@Nullable
@Override
public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
rootView = inflater.inflate(R.layout.fragment_parent_register, container, false);
return rootView;
}
@Override
public void onViewCreated(View view, @Nullable Bundle savedInstanceState) {
setUpViews();
setRecyclerAdapter();
}
private void setUpViews() {
fullNameEditText = (EditText) rootView.findViewById(R.id.fragment_parent_register_fullName);
emailEditText = (EditText) rootView.findViewById(R.id.fragment_parent_register_email);
passwordEditText = (EditText) rootView.findViewById(R.id.fragment_parent_register_password);
fullName = fullNameEditText.getText().toString();
email= emailEditText.getText().toString();
password = passwordEditText.getText().toString();
Bundle parentData = new Bundle();
parentData.putString(KEY_PARENT_FULL_NAME,fullName);
parentData.putString(KEY_PARENT_EMAIL,email);
parentData.putString(KEY_PARENT_PASSWORD,password);
Intent intent = getActivity().getIntent();
intent.putExtras(parentData);
的活动是:
registerButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
if (DataHolder.getInstance().getAccountType() == 0) {
Intent intent = new Intent(RegisterActivity.this, TeacherLocationActivity.class);
startActivity(intent);
} else {
/* Intent intent = new Intent(RegisterActivity.this, StudentLocationActivity.class);
startActivity(intent);*/
Bundle parentData = getIntent().getExtras();
if (parentData != null)
{
Toast.makeText(RegisterActivity.this, parentData.getString(KEY_PARENT_FULL_NAME)+parentData.getString(KEY_PARENT_EMAIL)+parentData.getString(KEY_PARENT_PASSWORD), Toast.LENGTH_SHORT).show();
}
else if (parentData == null)
{
Toast.makeText(RegisterActivity.this, "Bundle is empty", Toast.LENGTH_SHORT).show(); }
}
}
});
您是对的,从editTexts获取的数据在创建片段时填充,而不是在用户填充它,所以我用editText.setOnFocusChangeListener为每一个,它工作得很好 –