437 Stimmen

Wie kann ich eine Android-Taste deaktivieren?

Ich habe ein Layout erstellt, das zwei Schaltflächen enthält: "Weiter" und "Zurück". Zwischen den Schaltflächen generiere ich einige dynamische Ansichten. Wenn ich die Anwendung zum ersten Mal starte, möchte ich die Schaltfläche "Zurück" deaktivieren, da es keine vorherigen Ansichten geben wird. Ich möchte auch die Schaltfläche "Weiter" deaktivieren, wenn keine weiteren Ansichten angezeigt werden sollen. Gibt es eine Möglichkeit, die Schaltflächen zu deaktivieren?

screen shot of sample layout

912voto

Varun Punkte 33357

Haben Sie das versucht?

myButton.setEnabled(false); 

Update: Danke an Gwen. Fast vergessen, dass android:clickable kann in Ihrem XML-Layout festgelegt werden, um zu bestimmen, ob eine Schaltfläche anklickbar sein soll oder nicht.

55voto

Mulaffer Punkte 581

Ja, sie kann in XML deaktiviert werden. einfach verwenden:

<Button
android:enabled="false"
/>

52voto

Gwen Punkte 537

Sie können es in Ihrer XML-Datei nicht aktivieren oder deaktivieren (da das Layout zur Laufzeit festgelegt wird), aber Sie können festlegen, ob es beim Start der Aktivität anklickbar ist mit android:clickable .

45voto

Deepak Sharma Punkte 4811

Sie schreiben nur eine einzige Codezeile in Ihre Aktivität

Button btn = (Button) findViewById(R.id.button1);
btn.setEnabled(false);

Wenn Sie die gleiche Schaltfläche aktivieren möchten, schreiben Sie einfach

Button btn = (Button) findViewById(R.id.button1);
btn.setEnabled(true);

31voto

Paolo Rovelli Punkte 8750

In Java können Sie, sobald Sie die Referenz der Schaltfläche haben:

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

Um die Schaltfläche zu aktivieren/deaktivieren, können Sie Folgendes verwenden:

button.setEnabled(false);
button.setEnabled(true);

Oder:

button.setClickable(false);
button.setClickable(true);

Da Sie die Schaltfläche von Anfang an deaktivieren möchten, können Sie button.setEnabled(false); in der onCreate-Methode. Andernfalls können Sie aus XML direkt verwenden:

android:clickable = "false"

Also:

<Button
        android:id="@+id/button"
        android:layout_height="wrap_content"
        android:layout_width="wrap_content"
        android:text="@string/button_text"
        android:clickable = "false" />

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X