2014-09-03 65 views
0

我是編程新手,我正在Android中創建一個簡單的測驗應用程序。我的問題是我想創建不同類別的問題。我用過sqlite數據庫。 我已經成功地創建了「常見問題」類別,這裏是代碼:Android測驗應用程序

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包含第一類別的五個問題和第二類別的其他5個問題。我使用了繼承,但應用程序崩潰了。有人可以幫助我實現繼承嗎?

在此先感謝

+0

如果您打算從數據庫中獲得問題,**和**問題的數量是固定的,則有一項活動更可取。只需根據類別設置您提取的問題。 – 2014-09-03 06:34:23

+0

在answerCheck()方法中,qid變量被設置爲第一類,即它將從qid 0到qid 4工作。現在如何將它設置爲qid 6到qid 10? – awesum 2014-09-03 06:41:44

+0

不要比較qid。取另一個變量category_id,並相應地繼續。 – 2014-09-03 06:43:15

回答

0

不,您應該只使用一個活動。 您可以根據您的類別製作通用問題佈局並多次膨脹。 現在只需使用「getQuestionByCategory(categoryId)」查詢並在您的應用程序中使用。