2014-09-03 2 views
0

Я новичок в программировании, и я создаю простое приложение для викторины на Android. Мой вопрос: я хочу создать разные категории вопросов. Я использовал базу данных sqlite. я успешно создал категорию «Общие вопросы» и вот код:Android quiz app

List<Question> question_list; 
int score = 0; 
int qid = 0; 
Question currentQ; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
    QuizHelper qh = new QuizHelper(this); 
    question_list=qh.getAllQuestions(); 
    currentQ = question_list.get(qid); 
    tv_question = (TextView)findViewById(R.id.tv_question); 
    rda = (RadioButton)findViewById(R.id.radio1); 
    rdb = (RadioButton)findViewById(R.id.radio2); 
    rdc = (RadioButton)findViewById(R.id.radio3); 
    rdd = (RadioButton)findViewById(R.id.radio4); 
    rde = (RadioButton)findViewById(R.id.radio5); 
    btn_next = (Button)findViewById(R.id.button1); 
    setQuestionView(); 
    rg = (RadioGroup)findViewById(R.id.RadioGroup1); 
    btn_next.setOnClickListener(new View.OnClickListener() { 

     @Override 
     public void onClick(View v) 
     { 
       answerCheck(); 

     } 
    }); 
} 

    public void answerCheck(){ 
    rda.setChecked(false); 
     rdb.setChecked(false); 
     rdc.setChecked(false); 
     rdd.setChecked(false); 
     rde.setChecked(false); 

     rda.setClickable(true); 
     rdb.setClickable(true); 
     rdc.setClickable(true); 
     rdd.setClickable(true); 
     rde.setClickable(true); 

     rg = (RadioGroup)findViewById(R.id.RadioGroup1); 
     answer = (RadioButton)findViewById(rg.getCheckedRadioButtonId()); 

     if(answer != null){ 
      if(currentQ.getANSWER().equals(answer.getText())) 
      { 
       score++; 
       Log.d("myscore", "" + score); 
      } 

     } 

    if(qid < 5){ 
    currentQ = question_list.get(qid); 
    setQuestionView(); 
    }  
} 

public void setQuestionView(){ 
    counter.start(); 
    tv_question.setText(currentQ.getQUESTION()); 
    rda.setText(currentQ.getOPTA()); 
    rdb.setText(currentQ.getOPTB()); 
    rdc.setText(currentQ.getOPTC()); 
    rdd.setText(currentQ.getOPTD()); 
    rde.setText(currentQ.getOPTE()); 
    qid++; 
} 

Теперь мой вопрос, если я хочу, чтобы реализовать другую категорию следует использовать другую активность и наследовать класс от MainActivity? Databse содержит пять вопросов для 1-й категории и других 5 для второй категории. Я использовал наследование, но сбой приложений .. Кто-нибудь, пожалуйста, помогите мне в реализации наследования?

Заранее благодарен

+0

Если вы хотите получить вопросы из базы данных, ** И ** количество вопросов исправлено, одно действие предпочтительнее. Просто задайте вопросы, которые вы выбираете, в зависимости от категории. –

+0

В переменной answerCheck() переменная qid установлена ​​для 1-й категории i.e она будет работать от qid 0 до qid 4 .. Теперь, как установить ее для qid 6 в qid 10? – awesum

+0

Не сравнивайте qid. Возьмите другую переменную category_id и действуйте соответственно. –

ответ

0

Нет, вы должны использовать только одно действие. Вы можете составить общий макет вопроса и раздуть его много раз в соответствии с вашей категорией. Теперь просто введите запрос типа «getQuestionByCategory (categoryId)» и используйте его в своем приложении.