2015-03-18 2 views
2

Я работаю над викториной. У меня есть нормальный класс Java для вопроса и она выглядит следующим образом:Создание приложения викторины - работа с представлениями

public class Question { 
    private String question; 
    private LinkedList<Answer> answers; 

    public String getQuestion(){ 
     return this.question; 
    } 

    public LinkedList<Answer> getAnswers(){ 
     return this.answers; 
    } 

    public Question(String question, LinkedList<Answer> answers){ 
     this.question = question; 
     this.answers = answers; 
    } 

    public boolean checkIfCorrectAnswer(Answer answer){ 
     if (null == answer) 
      return false; 
     for (Answer i : answers){ 
      if (i == answer && answer.isCorrectAns()) 
       return true; 
     } 
     return false; 
    } 
} 

и класс ответов, который выглядит следующим образом:

public class Answer { 
    private String answerTxt; 
    private boolean correctAns; 

    public String getAnswerTxt() { 

     return answerTxt; 
    } 

    public boolean isCorrectAns() { 
     return correctAns; 
    } 

    public Answer(String answerTxt) { 
     new Answer(answerTxt, false); 
    } 
    public Answer(String answerTxt, boolean correctAns){ 
     this.answerTxt = answerTxt; 
     this.correctAns = correctAns; 
    } 


} 

Теперь я хочу, чтобы сделать вид (файл XML) который будет показывать каждый вопрос и это варианты, я пришел к чему-то близко, и это результат:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" 
    android:layout_height="match_parent" android:paddingLeft="@dimen/activity_horizontal_margin" 
    android:paddingRight="@dimen/activity_horizontal_margin" 
    android:paddingTop="@dimen/activity_vertical_margin" 
    android:paddingBottom="@dimen/activity_vertical_margin" 
    tools:context=".QuizActivity$PlaceholderFragment"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceLarge" 
     android:text="Large Text" 
     android:id="@+id/textViewQuizTitle" 
     android:layout_marginTop="35dp" 
     android:layout_alignParentTop="true" 
     android:layout_centerHorizontal="true" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:text="Medium Text" 
     android:id="@+id/textViewQuizQuestion" 
     android:layout_below="@+id/textViewQuizTitle" 
     android:layout_alignParentLeft="true" 
     android:layout_alignParentStart="true" 
     android:layout_marginTop="35dp" /> 

    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:layout_below="@+id/textViewQuizQuestion" 
     android:layout_marginTop="20dp" 
     android:weightSum="1"> 

     <Button 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="New Button" 
      android:id="@+id/button" 
      android:layout_weight="0.04" /> 

     <Button 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="New Button" 
      android:id="@+id/button2" 
      android:layout_gravity="center_horizontal" 
      android:layout_weight="0.04" /> 

     <Button 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="New Button" 
      android:id="@+id/button3" 
      android:layout_gravity="center_horizontal" 
      android:layout_weight="0.04" /> 

     <Button 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:text="New Button" 
      android:id="@+id/button4" 
      android:layout_gravity="center_horizontal" 
      android:layout_weight="0.04" /> 

    </LinearLayout> 

</RelativeLayout> 

у меня есть два вопроса, сейчас - я не понимаю, как я придаю простой класс Java для вид, а другая проблема - это «навигация» между вопросами, когда кто-то правильно отвечает на вопрос, но с другим «Вопросом» в.

Я попытался узнать из активности/но, к сожалению, ни один из тех, которые я проверил, не указал на мои требования.

ответ

1

На самом деле вы настраиваете xml-макет для Activity. Узнайте о деятельности и с некоторой логикой вы можете использовать свой xml-макет, только если вы всегда будете показывать один вопрос с помощью 4 вариантов ответа (кнопок). Вы, вероятно, должны использовать другой компонент, такой как Radio Button или Spinner вместо 4 кнопок, чтобы получить лучший дизайн ui. То, что вам нужно, просто, но вам нужно будет узнать о Activity и View, прежде чем начинать что-либо.

1

Для вопроса о прикреплении класса Java к представлению я предлагаю создать или получить экземпляр этого класса в классе Activity. Например, Question question1 = new Question(<constructor args here>). Сделайте это для каждого объекта «Вопрос и ответ».

На вопрос о навигации вам нужно будет использовать прослушиватель onClick на ваших кнопках, чтобы вы знали, когда кто-то отправил ответы, нажав одну из кнопок.

1

Предлагаю вам использовать ViewPager для управления викториной. Android documentation имеет пример приложения, с которого вы можете начать.

Я предполагаю, что у вас будет заданный вопрос (т. Е. Список вопросов и ответов). Этот набор вопросов можно использовать для заполнения ViewPager, и количество страниц в ViewPager может быть задано с использованием размера заданного набора вопросов. Я считаю, что это решит вашу «навигационную проблему».

Для другой проблемы вы можете динамически раздувать макет, основываясь на типе вопроса и ответа. Вы не предоставили достаточно информации о вашем типе/типе вопросов и ответах, поэтому я не могу сделать лучшее предложение, пока не узнаю тип вопроса/требование.

Дайте мне знать, если это поможет, и если вам нужна дополнительная информация.

0

Сначала вам нужно создать мероприятие.
С помощью Eclipse или Android Studio вы можете использовать мастер для создания простой пустой операции. Имя по умолчанию обычно MainActivity.
И в сгенерированном файле main_activity.xml вставьте указанный выше xml.
Теперь у вас есть главный вид.
Я пока не рекомендую использовать View Pagers. Сначала вы должны ознакомиться с разработкой Android.
Я помню, что начал изучать Android, я хочу создать простую викторину.
И это tutorial помогло мне много.
Захватите complete source code и пройдите через него, и когда вы застряли, оставьте комментарий.
Надеюсь, это поможет.

Смежные вопросы