Der Parameter setVisibility () kann nicht dynamisch gesetzt werden

Ich versuche, die Sichtbarkeit für einen Knopf wie folgt zu setzen:

public Bundle setActivityState(Bundle bundle){ startBtn = (Button) findViewById(R.id.startSensorsBtn); startBtn.setVisibility( getVisibilityState(bundle, PersistanceConstants.START_BTN_STATE) ); return bundle; } public int getVisibilityState(Bundle bundle, String keyName){ if (bundle.getInt(keyName) == View.VISIBLE){ return View.VISIBLE; } else if (bundle.getInt(keyName) == View.INVISIBLE){ return View.INVISIBLE; } else if (bundle.getInt(keyName) == View.GONE){ return View.GONE; } return 0; } 

Aber ich bekomme den Fehler:

  • Android - Schreiben einer benutzerdefinierten (zusammengesetzten) Komponente
  • Android-Webview wird meine URL nicht laden, wird aber andere laden
  • Android ACTION_MOVE Schwellenwert
  • Android drawBitmap 5x Leistungsunterschied
  • Proguard mit Autovalue
  • Wie man ein TextView in einer Aktivität ständig in einer Endlosschleife aktualisiert?
  •  Must be one of: View.VISIBLE, View.INVISIBLE, View.GONE less... (Ctrl+F1) Reports two types of problems: - Supplying the wrong type of resource identifier. For example, when calling Resources.getString(int id), you should be passing R.string.something, not R.drawable.something. - Passing the wrong constant to a method which expects one of a specific set of constants. For example, when calling View#setLayoutDirection, the parameter must be android.view.View.LAYOUT_DIRECTION_LTR or android.view.View.LAYOUT_DIRECTION_RTL. 

    Beim rufen

     getVisibilityState(bundle, PersistanceConstants.START_BTN_STATE) 

    Ich weiß nicht, wie man das umkommt. Ich verstehe, dass es eine vorgegebene Menge von Werten erwartet, aber alles was ich weiß, ist, einen int zu übergeben. Was kann hier gemacht werden?

  • Wie bekomme ich TextView-Werte aus einer Liste?
  • Best Practices (am besten für Android): authentifizieren einen Benutzer mit Facebook oder Google Login
  • Collapsing Toolbar wie Google Play Store
  • FirebaseInitProvider: FirebaseApp Initialisierung nicht erfolgreich
  • Wie man Text auf Bild zeigt
  • Wie kann ich Unicode-String in ASCII in Java konvertieren
  • 2 Solutions collect form web for “Der Parameter setVisibility () kann nicht dynamisch gesetzt werden”

    Wenn du weißt, was du tust, kannst du diese Android Studio Inspektion vor Ort unterdrücken

     //noinspection ResourceType 

    Beispielsweise,

     //noinspection ResourceType startBtn.setVisibility(bundle.getInt(PersistanceConstants.START_BTN_STATE)); 

    Ein bisschen spät zur Party aber eine andere Lösung, wenn du das viel in deinem Code nimmst und du hast eine Methode, die zurückgibt, dass int ist, deine eigene Sichtbarkeits-Annotation zu definieren, also so etwas wie dieses:

     public class MyStuff { @IntDef({View.VISIBLE, View.INVISIBLE, View.GONE}) @Retention(RetentionPolicy.SOURCE) public @interface Visibility { } public @Visibility int getVisibility() { return View.GONE; } } 

    Wenn Sie dies tun, dann AS wird nicht mehr beschweren, weil Sie eine richtige int def zurückgeben.

    Das Android ist ein Google Android Fan-Website, Alles ├╝ber Android Phones, Android Wear, Android Dev und Android Spiele Apps und so weiter.