如何解决为什么我想先显示的活动没有显示
我不确定这个问题应该如何表述,但我目前面临的问题是为什么我的 LoginActivity 在启动时不显示。下面是我的代码
<activity
android:name=".MainActivity"
android:label="@string/title_activity_login"
android:theme="@style/Theme.TutorSeekers30.NoActionBar" ></activity>
<activity
android:name=".ForgetAccount"
android:label="@string/title_activity_forget_account"
android:theme="@style/Theme.TutorSeekers30.NoActionBar"></activity>
<activity
android:name=".SignupActivity"
android:label="@string/title_activity_signup"
android:theme="@style/Theme.TutorSeekers30.NoActionBar" ></activity>
<activity android:name=".LoginActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
所以理所当然地,为了让您想要的活动首先显示,您必须将 <activity android:name=".LoginActivity">
中您想要的内容替换为位于右侧的活动?但替换后,不知何故我的 loginActivity 不是显示的第一个屏幕。我尝试将忘记帐户和注册活动都替换为启动时显示的第一个屏幕,并且两者都按预期显示。但是,对于我的 LoginActivity,它没有显示为预期的第一个屏幕。为什么?我还需要在这里展示其他东西吗?
这是我的 LoginActivity:
public class LoginActivity extends AppCompatActivity {
EditText etUsername,etPassword;
Button btnLogin;
TextView tvForgetAccount,tvCreateAccount;
ProgressBar pbBar;
private FirebaseAuth auth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
auth = FirebaseAuth.getInstance();
if (auth.getCurrentUser() != null){
startActivity(new Intent(LoginActivity.this,MainActivity.class));
finish();
}
etPassword = findViewById(R.id.etPassword);
etUsername = findViewById(R.id.etUsername);
btnLogin = findViewById(R.id.Loginbutton);
tvCreateAccount = findViewById(R.id.tvCreateAccount);
tvForgetAccount = findViewById(R.id.tvForgetAccount);
pbBar = findViewById(R.id.progressBar2);
tvCreateAccount.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(LoginActivity.this,SignupActivity.class);
startActivity(i);
}
});
tvForgetAccount.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(LoginActivity.this,ForgetAccount.class);
startActivity(i);
}
});
btnLogin.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String username = etUsername.getText().toString();
final String password = etPassword.getText().toString();
if (TextUtils.isEmpty(username)){
Toast.makeText(getApplicationContext(),"Please enter your username",Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(password)){
Toast.makeText(getApplicationContext(),"Please enter your password",Toast.LENGTH_SHORT).show();
return;
}
pbBar.setVisibility(View.VISIBLE);
auth.signInWithEmailAndPassword(username,password).addOnCompleteListener(LoginActivity.this,new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
pbBar.setVisibility(View.GONE);
if (!task.isSuccessful()){
if (password.length() < 6 ){
Toast.makeText(getApplicationContext(),"Wrong Password. Please try again",Toast.LENGTH_LONG).show();
return;
}else if (password.isEmpty()){
Toast.makeText(getApplicationContext(),"Password field cannot be empty",Toast.LENGTH_SHORT).show();
return;
}
} else{
Intent i = new Intent(LoginActivity.this,MainActivity.class);
startActivity(i);
finish();
}
}
});
}
});
};
}
这是我的 signUpActivity:
public class SignupActivity extends AppCompatActivity {
private FirebaseAuth mAuth;
EditText etName,etPassword,etPhone,etEmail;
Button btnCreate;
private ProgressBar progressbar;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_signup);
mAuth = FirebaseAuth.getInstance();
etName = findViewById(R.id.editTextTextPersonName);
etPassword = findViewById(R.id.editTextTextPassword);
etPhone = findViewById(R.id.editTextPhone);
etEmail = findViewById(R.id.editTextTextEmailAddress);
btnCreate = findViewById(R.id.CreateButton);
progressbar = findViewById(R.id.progressBar);
btnCreate.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
registerNewUser();
}
});
}
private void registerNewUser() {
progressbar.setVisibility(View.VISIBLE);
String email,password,username;
int ContactNumber ;
email = etEmail.getText().toString();
password = etPassword.getText().toString();
username = etName.getText().toString();
PhoneNumberUtils.formatNumber(etPhone.getText().toString());
if (TextUtils.isEmpty(email)){
Toast.makeText(getApplicationContext(),"Please Enter Email!",Toast.LENGTH_LONG).show();
return;
}
if (TextUtils.isEmpty(password)){
Toast.makeText(getApplicationContext(),"Please Enter Password!",Toast.LENGTH_LONG).show();
return;
}
if (TextUtils.isEmpty(username)){
Toast.makeText(getApplicationContext(),"Please Enter Username!",Toast.LENGTH_LONG).show();
return;
}
if (password.length() < 6){
Toast.makeText(getApplicationContext(),"Password too short,Please enter a minimum value of 6 characters",Toast.LENGTH_LONG).show();
return;
}
mAuth.createuserWithEmailAndPassword(email,password).addOnCompleteListener(new OnCompleteListener<AuthResult>() {
@Override
public void onComplete(@NonNull Task<AuthResult> task) {
if (task.isSuccessful()){
Toast.makeText(getApplicationContext(),"Registration is Successful!",Toast.LENGTH_LONG).show();
progressbar.setVisibility(View.GONE);
Intent intent = new Intent(SignupActivity.this,MainActivity.class);
startActivity(intent);
}
else{
Toast.makeText(getApplicationContext(),"Registration Failed! " + " Please try Again ",Toast.LENGTH_LONG).show();
startActivity(new Intent(SignupActivity.this,MainActivity.class));
progressbar.setVisibility(View.GONE);
finish();
}
}
});
}
}
这是我的 ForgetAccount
public class ForgetAccount extends AppCompatActivity {
EditText etUsername,etEmail;
Button btnSend;
private ProgressBar progressBar;
FirebaseAuth auth;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_forget_account);
etEmail = findViewById(R.id.editTextTextEmailAddress2);
etUsername = findViewById(R.id.etUsername);
btnSend = findViewById(R.id.Sendbutton);
progressBar = findViewById(R.id.progressBar2);
auth = FirebaseAuth.getInstance();
btnSend.setonClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String email = etEmail.getText().toString().trim();
String username = etUsername.getText().toString();
if (TextUtils.isEmpty(email)){
Toast.makeText(getApplication(),"Enter your registered email id",Toast.LENGTH_SHORT).show();
return;
}
if (TextUtils.isEmpty(username)){
Toast.makeText(getApplication(),"Enter your Username",Toast.LENGTH_SHORT).show();
return;
}
progressBar.setVisibility(View.VISIBLE);
auth.sendPasswordResetEmail(email).addOnCompleteListener(new OnCompleteListener<Void>() {
@Override
public void onComplete(@NonNull Task<Void> task) {
if (task.isSuccessful()){
Toast.makeText(ForgetAccount.this,"We have sent instructions to your registered email",Toast.LENGTH_SHORT).show();
}else{
Toast.makeText(ForgetAccount.this,"Failed to send email!",Toast.LENGTH_SHORT).show();
}
progressBar.setVisibility(View.GONE);
}
});
}
});
}
}
解决方法
将相同的 Theme 属性添加到每个 Activity 中是多余且无用的。 为了使其全局可用,在应用程序标签中声明了 Theme 属性。 清单文件的其余部分应如下所示。
<application
android:allowBackup="true"
android:icon="@mipmap/ic_launcher"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.TutorSeekers30.NoActionBar">
<activity
android:name=".MainActivity"
android:label="@string/title_activity_login" />
<activity
android:name=".ForgetAccount"
android:label="@string/title_activity_forget_account"/>
<activity
android:name=".SignupActivity"
android:label="@string/title_activity_signup"/>
<activity android:name=".LoginActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。