2017-06-07 4 views
2

Wenn Anko Selektor wie in den Beispielen, sofern nichtKotlin anko gemeinsamer Selektor funktioniert nicht wie in den dafür vorgesehenen Beispielen

funktioniert
val countries = listOf("Russia", "USA", "Japan", "Australia") 
selector("Where are you from?", countries) { i -> 
    toast("So you're living in ${countries[i]}, right?") 
} 

hier bei der Definition der Lambda-Funktion es zwei Arten von Argumenten erwarten sagt. (Dialogschnittstelle und int). Ich stecke damit fest. Alos der Standard kotlin alertdialog sagt dasselbe. Kann jemand dieses Problem lösen oder mir sagen, wie man einen Warnungsdialog mit Auswahl in Kotlin baut?

Antwort

2

Scheint, es ist ein Fehler in dem Beispiel.

Die selector function source sagt es (DialogInterface, Int) -> Unit, eine Funktion mit zwei Parametern erwartet, so können Sie Ihren Code beheben, indem Sie den fehlenden Parameter hinzufügen wie folgt:

selector("Where are you from?", countries) { dialogInterface, i -> /* ... */ } 

Oder, wenn Sie die DialogInterface nicht verwenden, nur ignorieren Sie es mit einem Unterstrich:

selector("Where are you from?", countries) { _, i -> /* ... */ } 
+0

Vielen Dank. Eine weitere Sache, was ist die Verwendung dieser Dialogschnittstelle? –

+0

Ich glaube, es ist für einen Fall, wenn Sie seine ['cancel()' oder 'ablehnen()'] (https://stackoverflow.com/questions/12139335/what-is-difference-between-dialoginterface-dismiss -und-dialoginterface-can) in Ihrem Event-Handler. Ich fand nichts anderes in [seiner Dokumentation] (https://developer.android.com/reference/android/content/DialogInterface.html), das nützlich aussehen würde. – hotkey

+0

Ich bekomme eine nicht aufgelöste Referenz für Selektor. Ich schließe Abhängigkeiten für Ank-Commons ein, wie von den Dokumenten angewiesen. Hat das jemand anderes bekommen? – airowe