Ich habe eine Anwendung mit mehreren Schaltflächen bisher. Wie können Sie ein onClick()
Ereignis einrichten, das ausgelöst wird, wenn auf etwas anderes als die Schaltflächen, die derzeit clickable
sind, geklickt wird? In meinem Fall: Es gibt ein Tutorial, und wenn Sie auf etwas klicken, außer die möglichen Schaltflächen, die angeklickt werden können, möchte ich eine Nachricht mit der Aufschrift "Dies ist nicht clickable
jetzt, klicken Sie bitte auf X").Wie behandelt man einen Klick, der nicht von Listeners behandelt wird?
Antwort
Jeder View
kann ein onClick
Ereignis empfangen, das mit einem Listener abgefangen werden kann.
Wenn Sie auf alle Klickereignisse achten und bestimmte Aktionen ausführen möchten, wenn auf die Schaltflächen geklickt wird, und für alle anderen, die eine Nachricht anzeigen, können Sie die Aktivität als OnClickListener
festlegen und dann überprüfen, welche ist die Ansicht, auf die geklickt wurde.
public class MainActivity extends Activity implements View.OnClickListener{
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
View v = findViewById(R.id.top_most_view);
v.setOnClickListener(this);
}
@Override
public void onClick(View v){
if(v.getId() == R.id.button1){
// do something for the button
}else if(v.getId == R.id.button2){
// other button
}else{
// Show the non clickable message
}
}
}
R.id.top_most_view ist die ID der obersten Ansicht Ihres Layouts. Zum Beispiel ein LinearLayout, das alle anderen Ansichten enthält.
In dem Beispiel habe ich nur zwei Tasten, aber Sie können beliebig viele hinzufügen. Sie können auch einen Schalter anstelle von kaskadierenden Wenns verwenden.
Der Code kann einen Tippfehler haben, ich habe es nicht getestet. Aber Sie sollten die allgemeine Vorstellung davon bekommen, wie Sie die Lösung implementieren können.
- 1. CasperJS - wie behandelt man einen 'Klick' innerhalb einer Schleife?
- 2. Wie behandelt man einen Vektor von Objekten?
- 3. Wie wird System.InvalidOperationException behandelt?
- 4. Wie wird ERR_INSECURE_RESPONSE behandelt?
- 5. Wie behandelt man System.Data.Entity.Validation.DbEntityValidationException?
- 6. Wie behandelt man Zugangstoken?
- 7. Wie behandelt man einen pthread_mutex_unlock() Fehler?
- 8. Wie wird IOException behandelt?
- 9. Wie wird URLConnection.connectionTimeout behandelt?
- 10. Wie man Gruppierungsregeln behandelt
- 11. Wie man EOFException behandelt?
- 12. Wie behandelt man Newtonsoft.Json.JsonSerializationException?
- 13. Wie behandelt man einen Verbindungsfehler in Anfragen?
- 14. Wie behandelt man Ausnahmen?
- 15. Wie behandelt man einen Klassennamenkonflikt, wenn alter Code portiert wird?
- 16. Wie man einen asynchronen Rückruf zurückbringt, wird synchron behandelt
- 17. Wie behandelt man UserControl Ereignisse
- 18. Wie wird der Zeitunterschied für Ablaufdaten behandelt?
- 19. Wie wird Transaktionskonkurriere deklarativ behandelt?
- 20. UIManagedDocument - Wie behandelt man UIDocumentStateSavingError?
- 21. Wie behandelt man Klick-Ereignisse mit @Directive in angular2?
- 22. WPF RoutedEvents wird von ... behandelt?
- 23. Wie behandelt man HttpClientException richtig?
- 24. C# Ausnahme wird nicht behandelt
- 25. Wie man Rücktaste in der Taste behandelt
- 26. WLS - Wie behandelt man Transaktion
- 27. Wie überprüft man, ob der SOAP-Fehler korrekt behandelt wird?
- 28. Wie behandelt man PHP-Funktionsfehler?
- 29. Wie behandelt man Etiketten in der Eingabepipeline?
- 30. Wie man onBackPressed in KeyguardManager behandelt
Danke ich werde das versuchen – InDaPond