2017-03-11 9 views
0

könnte mir jemand sagen, wie ich meine Android-Anwendung diese Reihenfolge durchführen lassen?Starten Sie eine andere Aktivität als Mainactivity nach Splash-Screen

1) Splash Screen (SplashActivity) .., die ich als Launcher

2) Intro Slider (WelcomeActivity) getan haben .., die ich weiß nicht, wie es nach dem Spritzen erscheinen zu lassen.

3) Hauptaktivität .. Ich möchte, dass es nach der Begrüßung erscheint, oder ich werde es starten, indem ich auf "GOT IT" klicke.

Vielen Dank im Voraus.

+0

Solange Sie Ihre WelomeActivity in Ihrem Manifest deklarieren, sollten Sie in der Lage sein, sie mit startActivity() intent aufzurufen –

Antwort

1

Wenn ich richtig liege, ist die Frage, wie man mit Intents und Handlern arbeitet. Zunächst einmal sollte Ihre splashActivity.java so aussehen;

public class SplashActivity extends Activity{ 

//timer in miliseconds, 1000ms = 1s// 
private static int SPLASH_TIME_OUT = 2000; 

//create first screen showed when app is launched// 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_splash); 

    new Handler().postDelayed(new Runnable() { 
     //showing splashscreen with a timer // 

     @Override 
     public void run() { 
      //this is executed once the timer is over// 

      Intent i = new Intent(SplashActivity.this, WelcomeActivity.class); 
      startActivity(i); 
      finish(); 

     } 
    },SPLASH_TIME_OUT); 

} 
} 

dann erklären, um Ihre Menü-Aktivität und splash Aktivität in AndroidManifest.xml zum Beispiel;

<activity 
     android:name=".SplashActivity" 
     android:screenOrientation="portrait"> 
     <intent-filter> 
      <action android:name="android.intent.action.MAIN" /> 

      <category android:name="android.intent.category.LAUNCHER" /> 
     </intent-filter> 
    </activity> 
    <activity 
     android:name=".WelcomeActivity" 
     android:screenOrientation="sensor" /> 
    <activity 
     android:name=".MainActivity" 
     android:screenOrientation="sensor" /> 

Dann, wie Sie Haupttätigkeit nach Ihrer Begrüßungs-Aktivität zu öffnen, einfach kopieren und den Code für SplashActivity.java in Ihre WelcomeActivity einfügen, notwendige Änderungen vorzunehmen, aber wie mit der Taste zu öffnen, siehe Beispiel Code unter erstens aus Ihrer Schaltfläche zeigen Sie bereits in Ihrem activity_welcome.xml z

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:tools="http://schemas.android.com/tools" 
android:id="@+id/activity_welcome" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
tools:context="com.domainname.yourappname.WelcomeActivity" 
android:background="@drawable/splash" 

<Button 
     android:text="@string/got it" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:id="@+id/button" 
     style="@style/Widget.AppCompat.Button.Borderless" 
     android:textAlignment="center" 
     android:textSize="30sp" 
     android:layout_marginTop="41dp" 
    android:textColorHighlight="@android:color/transparent" 
    android:textColorHint="@android:color/transparent" 
    android:layout_below="@+id/textView3" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentStart="true" /> 

</RelativeLayout> 

In Ihrem WelcomeActivity.java

public class WelcomeActivity extends Activity { 
Button button; 

@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_welcome); 
    addListenerOnButton(); 

} 
public void addListenerOnButton() { 

    final Context context = this; 

    button = (Button) findViewById(R.id.button); 

    button.setOnClickListener(new OnClickListener() { 

     @Override 
     public void onClick(View arg0) { 
      Intent intent = new Intent(context, MainActivity.class); 
      startActivity(intent); 
      finish(); 
      Toast.makeText(context, "MainActivity Opened.", Toast.LENGTH_SHORT).show(); 

     } 

    }); 
} 
} 

NB: Ich weiß nicht, welches Programm Sie schreiben, oder wie Sie es weit so entworfen haben, ist dies nur ein Beispiel und deine Macht müssen Anpassungen vornehmen, damit Ihr tatsächlicher Code ordnungsgemäß ausgeführt wird

0

Um Ihre Frage von "WIE" zu beantworten, um das zu tun;

Erstens, stellen Sie sicher, dass alle Aktivitäten in Ihrem Manifest deklariert sind wie folgt:

<application 
     android:icon="@mipmap/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme"> 
     <activity 
      android:name=".SplashActivity"> 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

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

Dann ist diese im Ziel des Spritz Timer in SplashActivity erklären:

//If you're using a "Timer" to count down splash screen 
new Handler().postDelayed(new Runnable() { 

      @Override 
      public void run() { 
       Intent intent = new Intent(SplashActivity.this, WelcomeActivity.class); 
       startActivity(intent); 

      } 
     }, 2000); 

In Ihrem WelcomeActivity überall Rufen Sie das Ende der Aktivität:

Intent intent = new Intent(WelcomeActivity.this, MainActivity.class); 
    startActivity(intent); 

Sie finden weitere Informationen über das Starten einer anderen Aktivität mit einer Absicht here einschließlich, wie zusätzliche Daten für die nächste Aktivität hinzugefügt werden, um zu empfangen. Ich hoffe, das hilft.

Verwandte Themen