2017-05-09 4 views
0

Das ist ein sehr dummer Compiler-Fehler, und ich frage mich, ob es eine einfache Möglichkeit gibt, es zu unterdrücken (wie mit einer Anmerkung)?Erwartete Ressource vom Typ anim bei Verwendung des ternären Operators

Der Fehler tritt beim 2. Argument von setCustomAnimations() auf. Der Fehler lautet: Expected resource of type anim.

FragmentTransaction transaction = getSupportFragmentManager().beginTransaction(); 

int exit_animation = current_popup == null ? 0 : current_popup.getExitAnimation(); 

transaction.setCustomAnimations(fragment.getEnterAnimation(), exit_animation); //ERROR 

Wenn ich die Ternärlinie zu einem der folgenden erweitern, verschwindet der Fehler.

int exit_animation; 

if (current_popup == null) 
    exit_animation = 0; 
else 
    exit_animation = current_popup.getExitAnimation(); 

Oder:

int exit_animation = 0; 

if (current_popup != null) 
    exit_animation = current_popup.getExitAnimation(); 
+1

Ich habe das nicht versucht, aber können Sie die '@ AnimRes' Annotation zu' exit_animation' hinzufügen? Ich weiß nicht, ob das auf lokalen Variablen funktioniert. – CommonsWare

+0

@CommonsWare Perfekt! Genau das, was ich gesucht habe. – Kacy

+0

Wenn Sie eine Chance bekommen, beantworten Sie Ihre eigene Frage und zeigen Sie die Syntax. Freut mich zu hören, dass es funktioniert hat! – CommonsWare

Antwort

1

Die Lösung, den Fehler zu unterdrücken ist:

@AnimRes 
int exit_animation = current_popup == null ? 0 : current_popup.getExitAnimation(); 

Credit CommonsWare in den Kommentaren.

Verwandte Themen