首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> 更多程式語言 >> 程式設計疑難解答

Android Activity 跳轉失敗排查:從登錄頁面到主頁面的正確 Intent 用法

     編輯:程式設計疑難解答

問題現象

登錄驗證成功後,應跳轉至 HomePageActivity,但頁面無變化。代碼中登錄邏輯完整,卻缺少跳轉啟動代碼。

關鍵代碼對比

登錄頁面(LoginActivity)

public void login() {
    if (isUserNameAndPwdValid()) {
        String userName = mAccount.getText().toString().trim();
        String userPwd = mPwd.getText().toString().trim();
        int result = mUserDataManager.findUserByNameAndPwd(userName, userPwd);
        if (result == 1) {
            // 登錄成功:僅切換當前頁面視圖,未啟動新 Activity
            loginView.setVisibility(View.GONE);
            loginSuccessView.setVisibility(View.VISIBLE);
            loginSuccessShow.setText(getString(R.string.user_login_sucess, userName));
            Toast.makeText(this, getString(R.string.login_sucess), Toast.LENGTH_SHORT).show();
            // 缺少 startActivity(new Intent(this, HomePageActivity.class));
        } else if (result == 0) {
            Toast.makeText(this, getString(R.string.login_fail), Toast.LENGTH_SHORT).show();
        }
    }
}

主頁面(HomePageActivity)

已正常實現 GridView 項目點擊跳轉各功能頁面,如 HotActivity、FashionActivity 等。

解決方案

在登錄成功分支添加顯式跳轉代碼:

if (result == 1) {
    Intent intent = new Intent(LoginActivity.this, HomePageActivity.class);
    startActivity(intent);
    finish(); // 可選:關閉登錄頁防止返回
    // 原有視圖切換代碼可移除或保留作為過渡動畫
}

補充說明

  • 確保 HomePageActivity 已在 AndroidManifest.xml 中註冊。
  • 若需傳遞用戶名,可用 intent.putExtra("username", userName)。
  • 數據庫驗證邏輯(findUserByNameAndPwd)應防範 SQL 注入,建議使用參數化查詢。
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved