Activity代码
String phone = ((EditText) findViewById(R.id.phone))
.getText().toString();
if (phone.isEmpty()) {
Toast.makeText(ForgetPsdActivity.this, "请输入手机号码",
Toast.LENGTH_LONG).show();
break;
} else {
ForgetPSD2Fragment fragment2 = new ForgetPSD2Fragment();
transaction.replace(R.id.fragmentcontainer, fragment2);
fragment2.setViewPhone(phone);
transaction.addToBackStack(null);
step = 2;
}
fragment2代码
public class ForgetPSD2Fragment extends Fragment {
private View view;
private TextView txtPhone;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
view = inflater.inflate(R.layout.forgetpsd2, container, false);
txtPhone = (TextView) view.findViewById(R.id.txtphone);
return view;
}
public void setViewPhone(String phone) {
if (txtPhone == null) {
Log.i("debug", phone + "abs");
}else{
txtPhone.setText(phone);
}
}
}
上边是我写的在Activity与fragment之间通信的例子,但是测试发现在调用fragment2.setViewPhone(phone);的时候,txtPhone为null值,请教一下是为什么,有什么解决办法可以处理这个问题?
fragment2.setViewPhone(phone);//这时候还没初始化
用
Bundle bundle = new Bundle();
bundle.putString("order", "1111");
fragment.setArguments(bundle);
然后在fragment中
String name = getArguments().getString("order");
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。