簡體   English   中英

Android Studio、Java:登錄用戶后打開新活動

[英]Android Studio, Java: Open new Activity after logging in a User

我有一個登錄屏幕,輸入憑據並點擊登錄后,如果用戶名和密碼正確,我希望打開下一個活動。 (本例中為 PadsActivity)。 代碼如下:

package com.example.beatpad.data;

import android.app.DownloadManager;
import android.content.Context;
import android.content.Intent;

import com.example.beatpad.data.model.LoggedInUser;
import com.example.beatpad.ui.login.DatabaseService;
import com.example.beatpad.ui.login.LoginActivity;

import java.io.IOException;
import java.util.UUID;

/**
 * Class that handles authentication with login credentials and retrieves user information.
 */
public class LoginDataSource {

    public DatabaseService dbs = new DatabaseService(null);

    public Result<LoggedInUser> login(String username, String password) {
        try {
            if (dbs.checkUser(username, password)) {
                return new Result.Success<>(username);
            } else {
                dbs.createUser(username, password);
                if  (dbs.checkUser(username, password)) {
                    return new Result.Success<>(username);
                } else {
                    return new Result.Error(new IOException("Dataset invalid"));
                }
            }
        } catch (Exception e) {
            return new Result.Error(new IOException("Error logging in", e));
        }
    }
}

現在,如果我執行以下操作:

package com.example.beatpad.data;

import android.app.DownloadManager;
import android.content.Context;
import android.content.Intent;

import com.example.beatpad.data.model.LoggedInUser;
import com.example.beatpad.ui.login.DatabaseService;
import com.example.beatpad.ui.login.LoginActivity;

import java.io.IOException;
import java.util.UUID;

/**
 * Class that handles authentication with login credentials and retrieves user information.
 */
public class LoginDataSource {

    public DatabaseService dbs = new DatabaseService(null);

    public Result<LoggedInUser> login(String username, String password) {
        Intent i = new Intent(this, PadsActivity.class);
        try {
            if (dbs.checkUser(username, password)) {
                startActivity(i);
                return new Result.Success<>(username);
            } else {
                dbs.createUser(username, password);
                if  (dbs.checkUser(username, password)) {
                    startActivity(i);
                    return new Result.Success<>(username);
                } else {
                    return new Result.Error(new IOException("Dataset invalid"));
                }
            }
        } catch (Exception e) {
            return new Result.Error(new IOException("Error logging in", e));
        }
    }
}

它將 PadsActivity 和 startActivity 標記為紅色。 無法解析符號/方法。

方法 startActivity() 可從上下文 class 獲得,並且您沒有在此處擴展它,您應該將結果返回給 Activity,然后從那里執行導航。 當然,要與 Context.startActivity() 一起使用,所有活動類都必須在其包的 AndroidManifest.xml 中有相應的聲明。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM