我創建了一個登錄布局(從 MainActivity 開始)public class MainActivity extends AppCompatActivity implements View.OnClickListener, BottomNavigationView.OnNavigationItemSelectedListener{ private Button regiBtn; private Button loginBtn; private Button forgotBtn; private EditText loginEmail; private EditText loginPwd; public static FirebaseAuth mAuth; public static FirebaseUser currentUser; @Override public boolean onNavigationItemSelected(@NonNull MenuItem menuItem) { Fragment fragment = null; switch (menuItem.getItemId()){ case R.id.navigation_profile: fragment = new ProfileFragment(); break; case R.id.navigation_task: fragment = new TaskFragment(); break; case R.id.navigation_leadingboard: fragment = new LeadingBoardFragment(); break; case R.id.navigation_home: fragment = new HomeFragment(); break; } return loadFragment(fragment); } private boolean loadFragment(Fragment fragment){ if(fragment!=null){ getSupportFragmentManager() .beginTransaction() .replace(R.id.fragment_container, fragment) .commit(); return true; } return false; } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); mAuth = FirebaseAuth.getInstance(); // check if user is signed in (non-null) currentUser = mAuth.getCurrentUser(); }正如您所看到的,當用戶登錄時,MainActivity 將其布局更改為底部導航布局,用戶可以在其中選擇要執行特定操作的部分。我想將當前活動(應該是MainActivity對吧?)布局更改為activity_main(用戶執行登錄功能的地方),布局確實改變了,但按鈕無法工作。布局更改為activity_main(用戶登錄)->activity_dashboard(帶有片段)->main_activity(當用戶從片段注銷時)我想知道我哪里出了問題。
2 回答

胡說叔叔
TA貢獻1804條經驗 獲得超8個贊
布局確實改變了,但按鈕不起作用。
MainActivity 擴展到AppCompatActivity. 您應該使用Intent打開 MainActivity,而不是創建新的setContentView.
logoutBtn.setOnClickListener(new View.OnClickListener(){
public void onClick(View v){
MainActivity.mAuth.signOut();
Intent i = new Intent(getActivity(),MainActivity.class);
startActivity(i);
getActivity().finish();
}
});

一只斗牛犬
TA貢獻1784條經驗 獲得超2個贊
在您的“配置文件片段”中,在“注銷功能”中嘗試使用以下代碼:
Intent in = new Intent(getActivity(),MainActivity.class);
startActivity(in);
getActivity().finish();
添加回答
舉報
0/150
提交
取消