![](/img/trans.png)
[英]How to open app to different activity after user login in Android Studio
[英]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.