Android中如何选择起始文件?
How do you choose the starting file in Android?
***我看了另一个 post 关于这个但它对我不起作用。
我在 Android Studio 中有两个文件,我想让 StartActivity 在用户打开应用程序时显示。然而,MainActivity 来了。我没有看到我的代码有问题。我的 AndroidManifest.xml 在下面。提前致谢!如果需要更多信息,请告诉我。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.simplysnap">
<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/AppTheme">
<activity android:name=".MainActivity"></activity>
<activity android:name=".RegisterActivity" />
<activity android:name=".LoginActivity" />
<activity android:name=".StartActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
我的启动活动文件:
package com.example.simplysnap;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
public class StartActivity extends AppCompatActivity {
Button login, register;
FirebaseUser firebaseUser;
@Override
protected void onStart() {
super.onStart();
firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
//if user has no value then redirect
if (firebaseUser != null){
startActivity(new Intent(StartActivity.this, MainActivity.class));
finish();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
login = findViewById(R.id.login);
register = findViewById(R.id.register);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(StartActivity.this, LoginActivity.class));
}
});
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(StartActivity.this, RegisterActivity.class));
}
});
}
}
我的主要活动文件:
package com.example.simplysnap;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
首先转到(Build->Clean Project)它将清理项目并删除所有临时文件。文件、Gradle 文件和生成的文件以及(Build->Rebuild Project)重建项目,它将重新生成 运行 应用程序所需的所有文件,然后尝试 运行
这将删除以前版本的应用程序并重新生成输出文件
//if user has no value then redirect
if (firebaseUser != null){
startActivity(new Intent(StartActivity.this, MainActivity.class));
finish();
}
如果您之前添加了一个 firebase 用户 运行 并且您可能卸载该应用程序并尝试再次安装该应用程序,则可能是重定向的位置它会占用以前的用户,因此您需要卸载该应用程序并重新启动设备,它将清除 firebase 用户
***我看了另一个 post 关于这个但它对我不起作用。
我在 Android Studio 中有两个文件,我想让 StartActivity 在用户打开应用程序时显示。然而,MainActivity 来了。我没有看到我的代码有问题。我的 AndroidManifest.xml 在下面。提前致谢!如果需要更多信息,请告诉我。
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.simplysnap">
<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/AppTheme">
<activity android:name=".MainActivity"></activity>
<activity android:name=".RegisterActivity" />
<activity android:name=".LoginActivity" />
<activity android:name=".StartActivity">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
我的启动活动文件:
package com.example.simplysnap;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import com.google.firebase.auth.FirebaseAuth;
import com.google.firebase.auth.FirebaseUser;
public class StartActivity extends AppCompatActivity {
Button login, register;
FirebaseUser firebaseUser;
@Override
protected void onStart() {
super.onStart();
firebaseUser = FirebaseAuth.getInstance().getCurrentUser();
//if user has no value then redirect
if (firebaseUser != null){
startActivity(new Intent(StartActivity.this, MainActivity.class));
finish();
}
}
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_start);
login = findViewById(R.id.login);
register = findViewById(R.id.register);
login.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
startActivity(new Intent(StartActivity.this, LoginActivity.class));
}
});
register.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
startActivity(new Intent(StartActivity.this, RegisterActivity.class));
}
});
}
}
我的主要活动文件:
package com.example.simplysnap;
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
首先转到(Build->Clean Project)它将清理项目并删除所有临时文件。文件、Gradle 文件和生成的文件以及(Build->Rebuild Project)重建项目,它将重新生成 运行 应用程序所需的所有文件,然后尝试 运行
这将删除以前版本的应用程序并重新生成输出文件
//if user has no value then redirect
if (firebaseUser != null){
startActivity(new Intent(StartActivity.this, MainActivity.class));
finish();
}
如果您之前添加了一个 firebase 用户 运行 并且您可能卸载该应用程序并尝试再次安装该应用程序,则可能是重定向的位置它会占用以前的用户,因此您需要卸载该应用程序并重新启动设备,它将清除 firebase 用户