大家好我现在正在学习并在android studio中开发应用程序。我的问题是我无法在启动画面后继续我的登录活动。我已经查看了net和stackoverflow并应用了它,但仍然是同样的错误。我感谢您的帮助和回答。
以下是我的一些代码
SplashScreen.java
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.splash);
new Handler().postDelayed(new Runnable() {
@Override
public void run() {
final Intent mainIntent = new Intent(SplashScreen.this, Login.class);
SplashScreen.this.startActivity(mainIntent);
SplashScreen.this.finish();
}
},3000);
}
Login.java
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login);
Intent intent = new Intent(Login.this, MainActivity.class);
startActivity(intent);
finish();
}
的AndroidManifest.xml
<?xml version="1.0" encoding="utf-8"?>
<application
android:allowBackup="true"
android:icon="@mipmap/logo"
android:label="@string/app_name"
android:supportsRtl="true"
android:theme="@style/AppTheme">
<activity
android:name=".SplashScreen"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
<activity
android:name=".Login"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<meta-data
android:name="android.support.PARENT_ACTIVITY"
android:value=".Login"/>
</activity>
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="com.ex.app.MainActivity" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity>
</application>
我哪里出错?
答案 0 :(得分:0)
由于您已编写代码以MainActivity
移至onCreate
<{1}}
Login.java
注释此行或将其保留在SignIn按钮的
上答案 1 :(得分:0)
您的登录活动只会将您引导至创建
上的MainActivity看看这些行
Intent intent = new Intent(Login.this, MainActivity.class);
startActivity(intent);
答案 2 :(得分:0)
它会直接重定向到MainActivity,就像您在LoginActivity onCreate中编写的那样
Intent intent = new Intent(Login.this, MainActivity.class);
startActivity(intent);
finish();
没有任何条件。通过设置登录检查条件和标准使其成为条件
if (<logged_in_your_condition_Check>){
Intent intent = new Intent(Login.this, MainActivity.class);
startActivity(intent);
finish();
}
答案 3 :(得分:0)
为什么在Login.class
中需要以下行 Intent intent = new Intent(Login.this, MainActivity.class);
startActivity(intent);
finish();
如果你在onCreate()中使用finish()那么它会立即调用onDestroy()并且没有任何意义。
从onCreate中移除上面给出的代码,您的代码将起作用
答案 4 :(得分:0)
在清单中写入:
<activity
android:name=".MySplashActivity"
android:noHistory="true"
..... >
....
</activity>
然后在 create() 或其他地方调用该方法:
private static int SPLASH_TIME_OUT=2000;
private void nextScreen() {
new Handler().postDelayed(()-> {
Intent intent = new Intent(MySplashaActivity.this, NextActivity.class);
startActivity(intent);
finish();
}, SPLASH_TIME_OUT);
}