2016-08-18 1 views
0

können Sie mir sagen, wenn ich diese Zeile Code schreiben:Android - Fehler boolean Intent

Boolean isFirstRun = getSharedPreferences ("PREFERENCE" MODE_PRIVATE).getBoolean ("isShowcaseView", true); 

if (isFirstRun) 
{ 
    startActivity (new Intent (DownloadIVase.this,ActivityShowcaseInfo.class)); 
    getSharedPreferences ("PREFERENCE" MODE_PRIVATE) .edit().putBoolean ("isShowcaseView", false) .commit(); 
} 

die startActivity() Werke,

Aber wenn ich die Linie

ändern

startActivity (new Intent (DownloadIVase.this, ActivityShowcaseInfo.class));

Zu

startActivity (new Intent (DownloadIVase.this, ActivityShowcaseInfo.class), ActivityOptions.makeSceneTransitionAnimation(this).toBundle()); 

es abstürzen

+1

'Boolean = isFirstRun' wie folgt verwenden ..........' Boolean isFirstRun = ' – sushildlh

+0

leid, dass ich falsch geschrieben ... Hier habe ich korrigiert – MVILAdu13015

+0

Sie übergeben falsche params nach https://developer.android.com/reference/android/app/ActivityOptions.html#makeSceneTransitionAnimation(android.app.Activity, android.view.View, java.lang.String) gibt es 3 Parameter für den Aufruf 'activityOptions' – Riad

Antwort

0

Try Code unten zu verwenden, während Sie ActivityOptions.makeSceneTransitionAnimation

ActivityOptions options = ActivityOptions.makeSceneTransitionAnimation(MyActivity.this, ivUserPic, "transitionName"); 
Intent intent = new Intent(MyActivity.this, DetailActivity.class); 
startActivity(intent, options.toBundle()); 

In ActivityOptions.makeSceneTransitionAnimation letzte Argument ist sharedElementName verwenden.

Das bedeutet, dass Sie konfigurieren müssen, welche Ansicht in Ihrer untergeordneten Aktivität die Ansicht ist, die während des Übergangs animiert wird. Um dies zu spezifizieren, müssen Sie ihm einen Namen geben.

android:transitionName="transitionName" 

Hier habe ich es in ImageView hinzugefügt. Sie können auch durch programmatisch festgelegt wie:

ivUserPic.setTransitionName("transitionName");