Java FragmentManager中从活动到片段的错误
我试图在成功登录后打开一个片段。我意识到意图不能用于片段,因此使用FragmentManager。然而,当我尝试使用FragmentManager时,我的应用程序崩溃了。代码中没有显示错误。以下代码显示在我的活动中Java FragmentManager中从活动到片段的错误,java,android,android-fragments,Java,Android,Android Fragments,我试图在成功登录后打开一个片段。我意识到意图不能用于片段,因此使用FragmentManager。然而,当我尝试使用FragmentManager时,我的应用程序崩溃了。代码中没有显示错误。以下代码显示在我的活动中 package com.example.ireview; import androidx.annotation.NonNull; import androidx.appcompat.app.AppCompatActivity; import androidx.fragment.a
package com.example.ireview;
import androidx.annotation.NonNull;
import androidx.appcompat.app.AppCompatActivity;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.EditText;
import android.widget.Toast;
import com.example.ireview.ui.home.HomeFragment;
import com.google.android.gms.tasks.OnCompleteListener;
import com.google.android.gms.tasks.Task;
import com.google.firebase.auth.AuthResult;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
public class LogInPage extends AppCompatActivity {
private FirebaseAuth mAuth = FirebaseAuth.getInstance();
private FirebaseUser currentUser = mAuth.getCurrentUser();
EditText email;
EditText password;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_log_in_page);
email = (EditText) findViewById(R.id.editTextEmailLogIn);
password = (EditText) findViewById(R.id.editTextPasswordLogIn);
}
public void clickLogin(View v) {
String userEmail = email.getText().toString();
String userPassword = password.getText().toString();
if (userEmail.length() != 0 && userPassword.length() != 0) {
mAuth.signInWithEmailAndPassword(userEmail, userPassword)
.addOnCompleteListener(this, new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()) {
// Sign up success
Toast.makeText(getBaseContext(), "Login Successful.",
Toast.LENGTH_SHORT).show();
// Bring user to success activity
androidx.fragment.app.Fragment fragment = new Fragment();
FragmentManager fragmentManager = getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.home_frag, fragment).commit();
} else {
//
}
}
});
} else {
//
}
}
}
package com.example.ireview;
导入androidx.annotation.NonNull;
导入androidx.appcompat.app.appcompat活动;
导入androidx.fragment.app.fragment;
导入androidx.fragment.app.FragmentManager;
导入android.content.Intent;
导入android.os.Bundle;
导入android.view.view;
导入android.widget.EditText;
导入android.widget.Toast;
导入com.example.ireview.ui.home.HomeFragment;
导入com.google.android.gms.tasks.OnCompleteListener;
导入com.google.android.gms.tasks.Task;
导入com.google.firebase.auth.AuthResult;
导入com.google.firebase.auth.FirebaseAuth;
导入com.google.firebase.auth.FirebaseUser;
公共类登录页扩展了AppCompatActivity{
私有FirebaseAuth mAuth=FirebaseAuth.getInstance();
私有FirebaseUser currentUser=mAuth.getCurrentUser();
编辑文本电子邮件;
编辑文本密码;
@凌驾
创建时受保护的void(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.activity\u log\u在页面中);
电子邮件=(EditText)findViewById(R.id.editTextEmailLogIn);
密码=(EditText)findViewById(R.id.editTextPasswordLogIn);
}
公共作废点击登录(视图五){
字符串userEmail=email.getText().toString();
字符串userPassword=password.getText().toString();
if(userEmail.length()!=0&&userPassword.length()!=0){
mAuth.使用Email和Password登录(userEmail,userPassword)
.addOnCompleteListener(这是新的OnCompleteListener(){
@凌驾
未完成的公共void(@NonNull任务){
if(task.issusccessful()){
//注册成功
Toast.makeText(getBaseContext(),“登录成功”,
吐司。长度(短)。show();
//将用户带到成功活动中
androidx.fragment.app.fragment fragment=新片段();
FragmentManager FragmentManager=getSupportFragmentManager();
fragmentManager.beginTransaction().replace(R.id.home_fragment,fragment.commit();
}否则{
//
}
}
});
}否则{
//
}
}
}
创建片段的对象
HomeFragment fragment = new HomeFragment();
而不是
androidx.fragment.app.Fragment fragment = new Fragment();