【发布时间】:2021-02-07 18:27:01
【问题描述】:
我想将数据从 LoginActivity 发送到 FragmentIndividual。
想了两天了,还是没解决。
我不知道为什么会发生 NullPointer。
如果您能将代码附在一起,我将不胜感激。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
// Initialize Firebase Auth
mAuth = FirebaseAuth.getInstance();
FragmentManager fragmentManager = getSupportFragmentManager();
final FragmentTransaction t = fragmentManager.beginTransaction();
final FragmentIndividual fragmentIndividual = new FragmentIndividual();
login_btn = (Button)findViewById(R.id.signIn);
e1 = (EditText)findViewById(R.id.idText);
login_btn.setOnClickListener(new View.OnClickListener(){
@Override
public void onClick(View v) {
Bundle b2 = new Bundle();
b2.putString("email", e1.getText().toString());
fragmentIndividual.setArguments(b2);
t.add(R.id.fram1234, fragmentIndividual);
t.commit();
}
});
TextView signup = (TextView) findViewById(R.id.signUp);
signup.setOnClickListener(new TextView.OnClickListener() {
@Override
public void onClick(View v) {
Intent signupIntent = new Intent(getApplicationContext(), SignupActivity.class);
startActivity(signupIntent);
}
});
findViewById(R.id.signIn).setOnClickListener(onClickLisener);
findViewById(R.id.pwResetBtn).setOnClickListener(onClickLisener);
}
public class FragmentIndividual extends Fragment {
TextView t1;
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.fragment_individual, container, false);
t1 = (TextView)v.findViewById(R.id.emailTv);
Bundle b3 = getArguments();
String email = b3.getString("email");
t1.setText(email);
return inflater.inflate(R.layout.fragment_individual, container, false);
}
}
【问题讨论】:
-
你应该在onCreateView中返回已经充气的v,而不是再次充气。
-
您可以尝试将这一行
final FragmentTransaction t = fragmentManager.beginTransaction();移动到登录按钮的onClick()方法中。 -
请不要发布错误图片,将错误发布为文本。另外,你确定这是你创建这个 Fragment 的唯一地方吗?
标签: android android-activity fragment