2011-06-13 2 views
0

간단한 객관식 퀴즈에 대해 가장 효율적이고 견고한 객체 지향 디자인이라고 생각하는 것을 듣고 싶습니다.디자인 팸플릿 : 복수 선택 퀴즈

기본적으로 앱은 각각 4 가지 선택 사항과 함께 일련의 질문을 제시합니다. 선택한 선택이 맞다면 새로운 활동에 정답 뒤에 정확한 내용과 축하가 표시되며, 틀린 것이 있으면 세부 사항 등과 함께 잘못 이해했다고 말할 수 있습니다.

즉, 사용자는 다음 질문으로갑니다. 새로운 질문마다 지금까지 점수를 볼 수 있습니다. 어쩌면 각 정답마다 50 점을 얻을 수 있습니다.

다음은 구현 방법에 대한 설명입니다. 일부 라디오 버튼 또는 답변 선택에 사용할 수있는 다른 위젯으로 맞춤보기를 만듭니다. 커스텀 뷰는 Question 객체를 취하는데, 이것은 단지 오래된 자바 객체이며, 선택 사항 1-4를위한 필드가있다. 그런 다음 사용자 정의보기에서 radiobuttons의 텍스트를 내 Question 객체의 선택 항목으로 설정할 수 있습니다. 그래서에서

activity이 ..

를 사용하여 내 사용자 정의보기 질문을 다음 Question myQuestion = new Question("string for choice 1", "string for choice 2"...)

과 같은 것을 보일 것이다. QuestionView myView = new QuestionView(this, myQuestion);

오케이 너무 좋습니다. 나는 곤경에 빠질 지 모르겠다. 하나는 모든 질문 활동에서 점수를 추적해야합니다. 그것은 내 질문에 모두 서브 클래스 중 일부를, 대부분은 비어 있습니다. activity 사용자가 답변을 얻을 때마다 증가하는 카운터를 가질 수 있습니다 (즉, 내 슈퍼 클래스 액티비티 int scoreKeeper; 및 각 하위 클래스 이 활동 : if(choiceIsCorrect) scoreKeeper++). 이렇게하면 점수가 활동 전체에서 지속될 수 있습니다. 나는 새로운 액티비티를 지나가고 여분의 액티비티마다 액티비티 점수를 매길 수 있다는 것을 알았습니다. 그리고 간단히 액티비티에 추가했습니다. 그러나 그것은 나에게 의미가있는 것처럼 보입니다.

내 모든 질문에 대해 사과드립니다.하지만 내 질문은 다음과 같습니다. 가장 간단한 디자인은 무엇이라고 생각하십니까? 또한 일반적으로 필자는 항상 Android 패러다임이 강조하는 것처럼 사용자가 '집중된 단일 활동'을 할 때마다 항상 새로운 활동을 사용해야한다고 항상 생각했습니다. 그러나 때로는 너무 많은 활동을 일으키는 것이 이상하게 느껴집니다. "이상하게 느껴진다"는 사실을 알지 못합니다. 단순히 활동을 재사용하는 것이 타당하지 않습니다. (예를 들어,이 경우에는 내 활동에서 새 질문을 교환하고 이에 따라 UI를 업데이트하는 것) 새로운 활동을 시작하는 것과 반대?

더 자세한 질문 - 어떤 선택 사항 (예 : 라디오 버튼)이 정답을 포함 하는지를 설정하는 매끄러운 방법은 무엇이겠습니까? 사용자가 제출을 누르면 내가 올바른 대답과 예를 확인할 수 있습니다./아니오 그럼 반응합니까?

은 요약하면 :

객관식 질문 활동의 연속을 만들 수있는 간단한 객체 지향 방법은 무엇
  1. ?
  2. 점수를 추적하는 가장 현명한 방법은 무엇입니까?
  3. 각 질문은 필연적으로 별도의 활동이되어야합니까? (그리고 일반적으로 어떻게하면 별도의 활동이되어야하는지에 대한 질문에 어떻게 접근합니까?)
  4. 특정 종류의 : 또한 어떤 선택이 올바른 것인지 플래그를 표시하는 가장 쉬운 방법은 무엇입니까? 사용자의 권리가 있는지 확인할 수 있습니까?예를 들어 라디오 버튼을 사용하면 onCheckedChangeListener를 사용하여 현재 선택되어있는 라디오 버튼을 검색 할 수 있지만 사용자 디자인이 올바른지 여부를 확인하기 위해 내 디자인에서이를 사용하는 방법을 잘 모르겠습니다.

감사합니다.

+0

아니요.이 클래스는 어떤 클래스도 아닙니다. 디자인 패턴에 대한 경험이 많은 사람들로부터 조언을 구하십시오. 나는 그것을 "끝낼 수있다"는 것을 알고 있지만 더 나은 접근 방법이 있는지 알고 싶습니다. – LuxuryMode

답변

2

"올바른/잘못된 정보 활동"을 자체 활동으로하지 않을 것입니다. 대신 사용자가 라디오 버튼 선택을 선택하고 "확인"버튼을 클릭하면 대화 상자가 나타납니다. 대화 상자를 닫으면 다음 질문으로 넘어갈 수있는 버튼이 있습니다.

나는이 모든 것을 하나의 활동으로해야한다고 말하고 싶습니다.

+0

그래, 올바른/잘못된 화면은 별도의 활동이 아니어도됩니다. 그러나 나머지는 어떨까요? 왜 그것이 모두 하나의 활동이어야한다고 말하는가? – LuxuryMode

+1

각 질문 화면은 본질적으로 마지막 화면과 동일한 화면이기 때문입니다. 그것은 같은 레이아웃을 가지고 있습니다. 변경되는 유일한 것은 텍스트가 화면의 모든 것을 차지하는 것입니다 (점수, 질문, 대답 선택 등). 마지막에 모든 질문에 대한 리뷰를 보여주는 완전히 다른 후 처리/요약 화면이 있다면 이는 새로운 활동이 될 수 있습니다. – Matt

0

질문을 통해 순환하기 위해 하나의 활동을 ViewFlipper와 함께 사용할 것입니다.