Home / Android-Entwicklung / Das Android Arsenal – Formulare

Das Android Arsenal – Formulare

Möchten Sie einen Fragebogen anzeigen, um die Meinung Ihrer Benutzer zu erfahren? Eine Umfrage für eine medizinische Studie? Eine Reihe von Anweisungen in einem manuellen Stil? SurveyKit ist eine Android-Bibliothek, mit der Sie genau das erstellen können.

Thematisch soll es das Gefühl einer professionellen Forschungsumfrage vermitteln. Die Bibliothek soll übersichtlich, schlank und einfach zu konfigurieren sein. Wir sind bestrebt, die Funktionalität in der Nähe von iOS ResearchKit-Umfragen zu halten.

Dies ist eine frühe Version und in Arbeit. Zögern Sie nicht, Feedback, Ideen oder Verbesserungen über ein Problem zu geben.

Ablauf

Screenshots

📚 Übersicht: Erstellen von Forschungsumfragen

Was SurveyKit für Sie tut

  • Vereinfacht die Erstellung von Umfragen
  • Stellt sofort umfangreiche Animationen und Übergänge bereit (benutzerdefinierte Animationen geplant).
  • Erstellen Sie einen konsistenten, schlanken und einfachen Stil, um Forschungszwecken gerecht zu werden.
  • Die Navigation in Umfragen kann linear sein oder auf einem Entscheidungsbaum basieren (gesteuert) graph)
  • Sammelt Ergebnisse und stellt sie dem Entwickler auf komfortable Weise zur weiteren Verwendung zur Verfügung.
  • Gibt Ihnen die völlige Freiheit, Ihre eigenen Fragen zu erstellen.
  • Ermöglicht das Anpassen des Stils.
  • Stellt eine API und Struktur zur Verfügung, die ist iOS ResearchKit Surveys sehr ähnlich.
  • Wird in der Produktion von Quickbird Studios verwendet.

Was SurveyKit (noch) nicht für Sie tut. Wir sind bestrebt, diese Bibliothek zu erweitern, bis sie der Funktionalität der iOS ResearchKit-Umfragen entspricht.

1. Repository hinzufügen

build.gradle




 allprojects {
    Repositories {
        jcenter ()
    }
} 

2. Hinzufügen der Abhängigkeit

build.gradle.kts

 Abhängigkeiten {
    Implementierung (Projekt ( " com.quickbirdstudios: surveykit: 0.1.0 " 
)
} 

Finden Sie die neueste Version HIER

Beispiel

Ein funktionierendes Beispielprojekt finden Sie HIER

Hinzufügen und Finden der Umfrage im XML-Format

Hinzufügen der Umfrageansicht zu Ihrer xml (Es sieht am besten aus, wenn es den Bildschirm ausfüllt.)

 < com 
 .quickbirdstudios.survey_kit.public_api.survey.SurveyView
     android :  id  =  " @ + id / survey_view " 

     android :  layout_width  =  " match_parent " 

     android :  layout_height  =  " match_parent "  /> 

Finde die Ansicht in der xml und speichere es zur weiteren Verwendung.

 var  surveyView :  SurveyView  =  view.findViewById ( R  .id.survey_view) 

Erstelle Umfrageschritte

Um einen Schritt zu erstellen, erstellen Sie eine Instanz einer dieser drei Klassen:

InstructionStep

 InstructionStep 
 (
    title  =  R 
 .string.intro_title,
    text  =  R 
 .string.intro_text,
    buttonText  =  R 
 .string.intro_start
) 

Der Titel ist der allgemeine Titel der Umfrage, die Sie durchführen möchten. Der ButtonText gibt den Text des Buttons an, mit dem die Umfrage gestartet wird. Alle diese Eigenschaften müssen Ressourcen-IDs sein. Text ist in diesem Fall der Einführungstext, der eine Einführung darüber geben soll, worum es in der Umfrage geht.

CompletionStep [19659052] CompletionStep (
    title = R .string.finish_question_title,
    text = R .string.finish_question_text,
    buttonText = R .string.finish_question_submit
)

Der Titel ist der allgemeine Titel der Umfrage, die Sie durchführen möchten, genau wie für den InstructionStep . Der ButtonText gibt den Text des Buttons an, mit dem die Umfrage beendet wird. Alle diese Eigenschaften müssen Ressourcen-IDs sein. Text soll hier etwas Motivierendes sein: Dass die Umfrage erfolgreich abgeschlossen wurde.

QuestionStep

 QuestionStep 
 (
    title  =  R 
 .string.about_you_question_title,
    text  =  R 
 .string.about_you_question_text,
    answerFormat  =  AnswerFormat .  TextAnswerFormat 
 (
        multipleLines  =  true 
,
        maximumLength  =  100 


    )
) 

Der Titel wie für InstructionStep und CompletionStep . Das answerFormat gibt die Art der Frage (die Art der Antwort auf die Frage) an, die Sie stellen möchten. Derzeit werden die folgenden Typen unterstützt: Schreiben Sie die eigentliche Frage, die Sie stellen möchten, als Text. Abhängig vom Antworttyp sollte die nächste Eigenschaft festgelegt werden.

  • TextAnswerFormat
  • IntegerAnswerFormat
  • ScaleAnswerFormat [19659019Auswahlrecht]
  • MultipleChoiceAnswerFormat

Sie müssen lediglich Ihre Schritte in einer Liste sammeln.

 val  steps  =  listOf  (step1, step2, step3, ...) 

Aufgabe erstellen

Als nächstes benötigen Sie eine Aufgabe. Jede Umfrage hat genau eine Aufgabe. Eine Aufgabe wird verwendet, um festzulegen, wie der Benutzer durch Ihre Schritte navigieren soll.

OrderedTask

 val  task  =  OrderedTask  (steps  =  steps) 

Die OrderedTask stellt nur die Fragen in Reihenfolge, wie sie angegeben sind.

NavigableOrderedTask

 val  task  =  NavigableOrderedTask  (steps  =  steps) 

The NavigableOrderedTask können Sie Navigationsregeln angeben. Es gibt zwei Arten von Navigationsregeln: Mit der DirectStepNavigationRule geben Sie an, dass nach diesem Schritt ein weiterer angegebener Schritt folgen soll.

 task.setNavigationRule (
    Schritte [ 4 
].
     Navigationsregel .  DirectStepNavigationRule 
 (
        destinationStepStepIdentifier  =  Schritte [ 6 

]. id
    )
) 

Mit der MultipleDirectionStepNavigationRule können Sie den nächsten Schritt in Abhängigkeit von der Antwort des Schritts angeben.

 task.setNavigationRule (
    Schritte [ 6 
].
     Navigationsregel .  MultipleDirectionStepNavigationRule 
 (
        resultToStepIdentifierMapper  =  {input  - > 
 when 
 (input) {
                 " Ja "  - >  Schritte [ 7 
]. Id
                 Nr.  - >  Schritte [ 0 
]
                 else  - >  null 




            }
        }
    )
) 

Ergebnisse auswerten

Nach Abschluss der Umfrage erhalten Sie einen Rückruf. Unabhängig von der FinishReason erhalten Sie immer alle bis jetzt gesammelten Ergebnisse. Das TaskResult enthält eine Liste von StepResults. Das StepResult enthält eine Liste von QuestionResults.

 surveyView.onSurveyFinish  =  {taskResult :  TaskResult Grund :  - > 
 if  (Grund  ==  FinishReason .  Completed 
) {
        taskResult.results.forEach {stepResult  - > 
 Log  .e ( " logTag "  " answer  $ {stepResult.results.firstOrNull ()}  "


)
        }
    }
} 

Stil

So fügen Sie Ihrer Umfrage einen benutzerdefinierten Stil hinzu. Wir werden in Zukunft noch mehr Optionen hinzufügen.

 val  configuration  =  SurveyTheme 
 (
    themeColorDark  =  ContextCompat  .getColor (requireContext (),  R 
 .color.cyan_dark),
    themeColor  =  ContextCompat  .getColor (requireContext (),  R 
 .color.cyan_normal),
    textColor  =  ContextCompat  .getColor (requireContext (),  R 
 .color.cyan_text)
) 

Umfrage starten

Jetzt müssen Sie nur noch die Umfrage starten und genießen. 🎉 🎊

 surveyView.start (Aufgabe, Konfiguration) 

Irgendwann Vielleicht möchten Sie Ihre eigenen Schritte für Fragen definieren. Dies könnte beispielsweise eine Frage sein, die den Benutzer auffordert, Farbwerte oder sogar Klangbeispiele auszuwählen. Diese sind noch nicht implementiert, können aber einfach selbst erstellt werden:

Sie benötigen ein CustomResult und ein CustomStep . Die Result-Klasse teilt SurveyKit mit, welche Daten Sie speichern möchten.

 @Parcelize 
 data  class  CustomResult 
 (
     val  customData :  String 
,
     überschreiben  val  stringIdentifier :  String 
,
     überschreiben  val  id :  Bezeichner 
,
     überschreiben  val  startDate :  Datum 
,
     überschreiben  var  endDate :  Datum 

) :  QuestionResult  Parcelable 

Als Nächstes benötigen Sie eine CustomStep-Klasse:

 class  CustomStep :  Step 
 {
     überschreiben  val  isOptional :  Boolean  =  true 
 überschreiben  val  id :  StepIdentifier  ] =  StepIdentifier 
 ()
     val  tmp  = 

 id

     überschreiben  Spaß  createView  ( Kontext :  Kontext  stepResult :  StepResult? :  StepView 
 {
         return  object :  StepView 

 (context, id, isOptional) {

             überschreiben  Spaß  setupViews  ()  =  Unit 

 val  root  =  View  .inflate (context,  .inflate  R  .layout.example,  this 

)

             überschreiben  Spaß  createResults  () :  QuestionResult  = 
 CustomResult 
 (
                    root.findViewById < EditText > ( R 
 .id.input) .text.toString (),
                     stringIdentifier 

,
                    Ich würde,
                     Datum 
 (),
                     Datum 


 ()
                )

             überschreiben  Spaß  isValidInput  () :  Boolean  =  dieses  @ CustomStep.isOptional 

 überschreiben  var ] isOptional :  Boolean  =  this  @ CustomStep.isOptional 
 override  val  id :  StepIdentifier 

 tmp

             Überschreiben  Spaß  Stil  ( surveyTheme :  SurveyTheme 
) {
                 //  hier stylen 



            }

             init 
 {
                root.findViewById < Button > ( R  .id.  continue 

)
                    .setOnClickListener {onNextListener (createResults ())}
                root.findViewById < Button > ( R 

 .id.back)
                    .setOnClickListener {onBackListener (createResults ())}
                root.findViewById < Button > ( R 
 .id.close)
                    .setOnClickListener {onCloseListener (createResults (),  FinishReason .  Completed 
)}
                root.findViewById < Button > ( R 

 .id.skip)
                    .setOnClickListener {onSkipListener ()}
                root.findViewById < EditText > ( R 
 .id.input) .setText (
                    (Schritt  Ergebnis?  .Ergebnis? .FirstOrNull ()  als ?  CustomResult ) ?. customData ?: ?  ] "





                )
            }
        }
    }
} 

Dies ist eine Übersicht darüber, welche Funktionen iOS ResearchKit Surveys bietet und welche bereits von SurveyKit auf Android unterstützt werden. Ziel ist es, dass beide Bibliotheken in ihrer Funktionalität übereinstimmen.

Schritte iOS ResearchKit Android SurveyKit
Anleitung
Einzelauswahl [19659224] ✅
Mehrfachauswahl
Boolesche Antwort x
Wertauswahl ✅ [19659234x
Bildauswahl x
Numerische Antwort
Tageszeit x
Datumsauswahl [19659224] ✅ x
Textantwort (unbegrenzt)
Textantwort (beschränkt)
Textantwort (validiert) x
Antwort skalieren
E-Mail-Antwort x
Standortantwort ✅ [19659234] x

Diese Android-Bibliothek wurde erstellt mit ❤️ von QuickBird Studios.

Öffnen Sie ein Problem, wenn Sie Hilfe benötigen, wenn Sie einen Fehler gefunden haben oder wenn Sie eine Funktionsanforderung diskutieren möchten.

Öffnen Sie eine PR, wenn Sie dies möchten Änderungen an SurveyKit.

SurveyKit wird unter einer MIT-Lizenz veröffentlicht. Weitere Informationen finden Sie unter Lizenz.

.

About AndroidWeltEditor

Check Also

Das Android Arsenal – Gradle Plugins

Gradle-Plugin, das das Abrufen des Android OpenCV SDK und das Verknüpfen mit dem Projekt automatisiert …

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.