2015-10-30 33 views
2

是否有可能在android studio中的splash和主要活動之間獲得登錄活動.`應該在splash活動之後並在main.how之前獲取它。如何在主活動之前獲得登錄活動

<?xml version="1.0" encoding="utf-8"?> 

​​

+0

只需將第一個活動設置爲您的LoginActivity。 – barq

+0

那麼是什麼問題? –

+0

我想先濺開活動,然後登錄, – sun

回答

1

你可以改變你的清單這樣

<application 
     android:allowBackup="true" 
     android:icon="@drawable/icon" 
     android:label="@string/app_name" 
     android:logo="@drawable/icon" 
     > 
     <activity 
      android:name=".SplashActivity" 
      android:label="@string/app_name" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
     <activity android:name=".LoginPage"></activity> 
     <activity android:name=".MainPage"></activity> 
</application> 

,並確保你的意圖是爲了

1

你打電話時飛濺的活動,裏面飛濺活動只是調用loginactivity,如果你是在登錄活動,在按鈕被按下,調用mainactivity。而已。

public class SplashActivity extends Activity { 

    private final int STR_SPLASH_TIME = 3000; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_splash); 
     startSplashTimer(); 
    } 

    private void startSplashTimer() { 
     try { 
      Timer timer = new Timer(); 
      timer.schedule(new TimerTask() { 

       @Override 
       public void run() { 
        Intent intent = new Intent(SplashActivity.this, LoginActivity.class); 
        startActivity(intent); 
        finish(); 
       } 
      }, STR_SPLASH_TIME); 
     } catch (Exception e) { 
      e.printStackTrace(); 
     } 
    } 

SplashActivity,將要去LoginActivity,當這發生在按鈕呼叫MainActivity那的onclick後。

所以,你的流程應該是這樣的,

SplashActivity - > LoginActivity - > MainActivity

+0

是啊得到​​它謝謝 – sun

+0

如果這個答案真的對你有幫助,請接受這個答案,並贊同它。 –

+0

請接受這個答案,因爲表決下面有一個勾號,所以更多的人會明白這個答案是值得的。 –

0

做這樣的事情:

SplashActivity.java

public class SplashActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.chat_activity); 

      ... 
      if(!alreadyLoggedIn()) { 
       Intent intent = new Intent(SplashActivity.this, LoginActivity.class); 
       startActivity(intent); 
      } else { 
       Intent intent = new Intent(SplashActivity.this, MainActivity.class); 
       startActivity(intent); 
      } 
    } 
} 

LoginActivity.java

public class LoginActivity extends Activity { 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.chat_activity); 

      if(loginSuccessful()) { 
       Intent intent = new Intent(LoginActivity.this, MainActivity.class); 
       startActivity(intent); 
      } else { 
       // show ERROR 
      } 
    } 
} 
0

appropriare我已經回答了類似的問題兩個或三個星期前。找到答案here

但是,在我看來,創建一個僅僅用於顯示飛濺的活動並不是那麼好。從本質上講,你的應用程序應該儘可能少的活動。毫無疑問,活動是應用程序的主要和最重要的組件。因此,僅僅爲了顯示一個閃屏,您可能想要在您的LoginActivity中顯示該閃屏,直到加載更多資源。一旦加載完畢,您可以隱藏該飛濺並顯示登錄表單。