我正在开发DatingApp,目前正在从事登录/注册过程。
由于某些设计方面的原因,我有一个 AuthActivity 持有 MailAuthFragment (带有“继续”按钮!),持有 EnterMailSubFragment (电子邮件+密码EditText)/ ConfirmMailSubFragmen t(该屏幕显示带有重新发送验证按钮的相关电子邮件)。
我希望 MailAuthFragment 执行所有数据库工作,以便我的 EnterMailSubFragment 仅需要获取EditText条目并将其安全地传递给父 MailAuthFragment 。
另一个困难是:我希望EnterMail内容和ConfirmMail内容独立于我的“继续”按钮滑动。要实现此按钮是父 MailAuthFragment 的一部分。
当按以下方法触发MailAuthFragment中的“继续”按钮onClick()
时:
Fragment mCurrentFragment = getChildFragmentManager().findFragmentById(R.id.fragment_mailauth_container);
if(mCurrentFragment instanceof EnterMailSubFragment){
String mMail = ((EnterMailSubFragment) mCurrentFragment).getEmail();
String mPassword = ((EnterMailSubFragment) mCurrentFragment).getPassword();
if(mMail == null || mPassword == null){
return;
}
因此,我的EnterMailSubFragment具有公用方法getEmail() / getPassword()
。
我不确定这是否是将某些数据从ChildFragment传递到ParentFragment的安全方法。宣布它们受到保护似乎也很容易受到伤害。
我也可以想象在ChildFragment EnterMailSubFragment
public interface MailSubFragmentListener{
void onSendEmail(String mEmail);
void onSendPassword(String mPassword);
}
private MailSubFragmentListener mCallback;
@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
}
@Nullable
@Override
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View mView = inflater.inflate(R.layout.subfragment_mailauth, container, false);
this.initUiWidgets(mView);
return mView;
}
public void setListener(MailSubFragmentListener mCallback){
this.mCallback = mCallback;
}
public static EnterMailSubFragment newInstance(MailSubFragmentListener mCallback){
EnterMailSubFragment mFragment = new EnterMailSubFragment();
mFragment.setListener(mCallback);
return mFragment;
}<br/>
并在我的ParentFragment中将其实现为
this.performFragmentTransaction(EnterMailSubFragment.newInstance(new EnterMailSubFragment.MailSubFragmentListener() {
@Override
public void onSendEmail(String mEmail) {
}
@Override
public void onSendPassword(String mPassword) {
}
}),"EnterMail", mEnterAnim);<br/>
这些方法中的任何一种是否足以安全地传递密码和电话号码?