2017-02-03 3 views
-3

나는 10 가지 질문으로 안드로이드 용 Quizz 응용 프로그램을 만들고 있는데, 모두 4 개의 라디오 버튼과 끝 부분에 하나의 버튼이있어 점수를 보여줍니다. 문제는 내가 5 포인트를주는 정답을 선택했을 때입니다. 그러나 다른 라디오 버튼을 체크하면 포인트가 5가되고 다시 누르면 5가됩니다. 이것을 코딩하는 가장 좋은 방법은 무엇입니까?라디오 버튼으로 안드로이드에 퀴즈 응용 프로그램 만들기

package com.example.android.quizproject; 

import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.RadioButton; 
import android.widget.TextView; 

public class MainActivity extends AppCompatActivity { 

int points = 0; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
} 

public void firstRadioButtons (View view){ 
    boolean checked = ((RadioButton) view).isChecked(); 
    switch (view.getId()) { 
     case R.id.questionOneA: 
      if (checked) 
       points += 0; 
       break; 
     case R.id.questionOneB: 
      if (checked) 
       points += 0; 
       break; 
     case R.id.questionOneC: 
      if (checked) 
       points += 5; 
       break; 
     case R.id.questionOneD: 
      if (checked) 
       points += 0; 
       break; 
    } 

} 

public void showScore (View view) { 
    TextView scoreTextView = (TextView) findViewById(R.id.score); 
    scoreTextView.setText(" " + points); 
} 

} 당신은 질문 previousy 응답하거나하지 않은 경우 확인하는 카운터 vvariable를 사용할 수있다

+0

질문을 표현하는 방식이 다소 혼란 스럽습니다. 표시된 코드는 올바른 옵션 (C)을 클릭하면 5 점을 추가하고 다른 옵션을 클릭하면 아무 것도 수행하지 않습니다. 이것이 의도 된 행동이 아닌가? 아니면 이것을 구현하는 가장 좋은 방법을 묻는 중입니까? – RedBassett

+0

죄송합니다, 제 영어는 최악입니다! 문제는 내가 A, B 또는 D로 전환하면 0 점을 추가하지만 C를 선택할 때 주어진 5 점을 절대로 빼지 않고 5 점을 더하는 정확한 점을 선택하면 문제가됩니다. C 점을 다시 선택하면 포인트가 추가되고, 총 10 점. –

+0

영어로 걱정하지 않아도됩니다. 너는 이것을 멀리하기 위해 잘하고있다! 질문은 어떻게 구성되어 있습니까? 한 페이지에 10 개의 질문이 모두 있습니까? 아니면 질문 사이에 '다음'버튼이 있습니까? 버튼이있는 경우 포인트가 선택 될 때까지 포인트를 더하거나 뺍니다. 한 페이지에있는 경우 옵션이 선택되어 있지 않을 때 마지막에 점수 버튼을 누르면 모든 질문을 확인하십시오. – RedBassett

답변

0

: 여기

는 코드입니다. 코드의 일부를 다음과 같이 수정하십시오.

public void firstRadioButtons (View view){ 
    boolean checked = ((RadioButton) view).isChecked(); 
    int count=0; 
    switch (view.getId()) { 
     case R.id.questionOneA: 
      if (checked) 
       { 
      if(count!=0){ 
       points-=5; 
       count=0; 
       } 
       } 
       break; 
     case R.id.questionOneB: 
      if (checked) 
       { 
      if(count!=0){ 
       points-=5; 
       count=0; 
       } 
       } 
       break; 
     case R.id.questionOneC: 
      if (checked){ 
       points += 5; 
       count+=1;} 
       break; 
     case R.id.questionOneD: 
      if (checked) 
       { 
      if(count!=0){ 
       points-=5; 
       count=0; 
       } 
       } 
       break; 
    } 

} 
+0

더하기/빼기에 부울 값을 저장하는 것이 더 쉬울 것입니다. 그런 다음 메서드 끝 부분에 해당 항목을 모두 넣으십시오. –

+0

사실 좋은 아이디어입니다. 제안 해 주셔서 감사 드리며 실제로 진행되었습니다. –

+0

당신은 환영합니다 :) –

0

사실, 당신이 그것을 묘사 한 방식은 상식입니다. 한 번 옳은 답을 클릭하면 5로 설정되지만, 다른 답을 누르면 0이 추가됩니다.

일반적으로 올바른 답을 한 번 가져 왔고 다른 질문은 0으로 설정되어 있기 때문에 일반적으로 5가 인쇄됩니다. 여기서 수정해야 할 것이 아무것도 없으며 변수가 5. Abhriya가 말했듯이 (그녀/그의) 예에서와 같이 카운터 증분 값을 추가 할 수 있습니다.

관련 문제