簡體   English   中英

向測驗答案中添加數字值並顯示等於答案總和的視圖

[英]Adding number values to answers in quizz and displaying a view that equals the sum of answers

我正在做一個測驗,其中有4個問題,每個問題2個答案。 我在相同的布局中使用了幾個視圖,所以我沒有為每個問題創建一個活動。 用戶將看到一個包含一個問題和2個可能答案的屏幕,而不是應該選擇的一個,然后單擊“下一步”轉到下一個問題。 如何為用戶選擇的每個按鈕注冊一個數字值,最后,當單擊結果按鈕時,計算這些值的總和並顯示等於(等於16)個數字的視圖答案之和?

     package com.example.quizapp;

     import android.os.Bundle;
     import android.app.Activity;
     import android.view.Menu;
     import android.view.View;
     import android.view.View.OnClickListener;
     import android.widget.Button;
     import android.widget.ImageButton;
     import android.widget.ScrollView;

     public class GotoStart extends Activity {



    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_goto_start);

        //Buttons for start screen

        ImageButton clicks =(ImageButton)findViewById(R.id.clicks);
        ImageButton new_test_btn =(ImageButton)findViewById(R.id.new_test_btn);
    ImageButton view_profile_btn =(ImageButton)findViewById(R.id.view_profile_btn);
        ImageButton home_btn =(ImageButton)findViewById(R.id.home_btn);
        ImageButton info_btn =(ImageButton)findViewById(R.id.info_btn);
        //Buttons for question_1
        Button a1_btn =(Button)findViewById(R.id.a1_btn);
        Button b1_btn =(Button)findViewById(R.id.b1_btn);
        Button next_btn1 =(Button)findViewById(R.id.next_btn1);

        //Buttons for question_2

        Button a2_btn =(Button)findViewById(R.id.a2_btn);
        Button b2_btn =(Button)findViewById(R.id.b2_btn);
        Button next_btn2 =(Button)findViewById(R.id.next_btn2);
        Button back_btn1 =(Button)findViewById(R.id.back_btn1);

        //Buttons for question_3

        Button a3_btn =(Button)findViewById(R.id.a3_btn);
        Button b3_btn =(Button)findViewById(R.id.b3_btn);
        Button next_btn3 =(Button)findViewById(R.id.next_btn3);
        Button back_btn2 =(Button)findViewById(R.id.back_btn2);

      //Buttons for question_4

        Button a4_btn =(Button)findViewById(R.id.a3_btn);
        Button b4_btn =(Button)findViewById(R.id.b3_btn);
        Button result_btn =(Button)findViewById(R.id.result_btn);
        Button back_btn3 =(Button)findViewById(R.id.back_btn3);

        //Click on screen to start

            clicks.setOnClickListener(new OnClickListener() {
            @Override    
            public void onClick(View v) {
                View startpage = (View)findViewById(R.id.startpage);
                View homepage = (View)findViewById(R.id.homepage);

                homepage.setVisibility(View.GONE);
                startpage.setVisibility(View.VISIBLE);};});

      //Click for question_1

            new_test_btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                View startpage = (View)findViewById(R.id.startpage);
                View question_1 = (View)findViewById(R.id.question_1);

                startpage.setVisibility(View.GONE);
                question_1.setVisibility(View.VISIBLE);};});

      //Click for question_2

            next_btn1.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                View question_1 = (View)findViewById(R.id.question_1);
                View question_2 = (View)findViewById(R.id.question_2);

                question_1.setVisibility(View.GONE);
                question_2.setVisibility(View.VISIBLE);};});

      //Go back to question_1

            back_btn1.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                View question_2 = (View)findViewById(R.id.question_2);
                View question_1 = (View)findViewById(R.id.question_1);

                    question_2.setVisibility(View.GONE);
                    question_1.setVisibility(View.VISIBLE);};});

      //Click for question_3

            next_btn2.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                View question_2 = (View)findViewById(R.id.question_2);
                View question_3 = (View)findViewById(R.id.question_3);

                question_2.setVisibility(View.GONE);
                question_3.setVisibility(View.VISIBLE);};});

      //Go back to question_2

            back_btn2.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                View question_3 = (View)findViewById(R.id.question_3);
                View question_2 = (View)findViewById(R.id.question_2);

                    question_3.setVisibility(View.GONE);
                    question_2.setVisibility(View.VISIBLE);};});

     //Click for question_4

            next_btn3.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                View question_3 = (View)findViewById(R.id.question_3);
                View question_4 = (View)findViewById(R.id.question_4);

                    question_3.setVisibility(View.GONE);
                    question_4.setVisibility(View.VISIBLE);};});

     //Go back to question_3

            back_btn3.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                View question_4 = (View)findViewById(R.id.question_4);
                View question_3 = (View)findViewById(R.id.question_3);

                    question_4.setVisibility(View.GONE);
                    question_3.setVisibility(View.VISIBLE);};});

     //Click for info screen

            info_btn.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                View startpage = (View)findViewById(R.id.startpage);
            ScrollView frameinfo = (ScrollView)findViewById(R.id.frameinfo);
                View answers = (View)findViewById(R.id.answers);

                    startpage.setVisibility(View.GONE);
                    frameinfo.setVisibility(View.VISIBLE);
                    answers.setVisibility(View.VISIBLE);};});

     //Click for home

            home_btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                View startpage = (View)findViewById(R.id.startpage);
                View homepage = (View)findViewById(R.id.homepage);

                startpage.setVisibility(View.GONE);
                homepage.setVisibility(View.VISIBLE);};});

        //Click for home

            view_profile_btn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                View startpage = (View)findViewById(R.id.startpage);
                View answers = (View)findViewById(R.id.answers);

                startpage.setVisibility(View.GONE);
                answers.setVisibility(View.VISIBLE);};});










      }
          @Override
          public boolean onCreateOptionsMenu(Menu menu) {
          // Inflate the menu; this adds items to the action bar if it is present.
          getMenuInflater().inflate(R.menu.goto_start, menu);
          return true;
          }}
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.HashMap;
import java.util.Map;
import java.util.Scanner;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;


public class AndroidApp extends JFrame implements ActionListener {

private AnswerButton questionOneButtonA;
private int totalScore;
private JButton finishButton;
private JLabel totalScoreLabel;

public AndroidApp(){
     setSize(500,500);
     setLayout(null);

     questionOneButtonA = new AnswerButton("Choice 1",10);
     questionOneButtonA.setActionCommand("questionOneChoice1");
     questionOneButtonA.setBounds(50,50,100,20);
     questionOneButtonA.addActionListener(this);
     add(questionOneButtonA);

     finishButton = new JButton("Done");
     finishButton.setBounds(50,100,100,20);
     finishButton.setActionCommand("done");
     finishButton.addActionListener(this);
     add(finishButton);

     totalScoreLabel = new JLabel("0");
     totalScoreLabel.setBounds(200,200,100,50);
     add(totalScoreLabel);



     setVisible(true);
}

public void actionPerformed(ActionEvent ae){
    if(ae.getActionCommand().equals("questionOneChoice1")){
        totalScore+=questionOneButtonA.getPointValue();

    }
    else if(ae.getActionCommand().equals("done")){
        totalScoreLabel.setText(""+totalScore);
    }
}
public static void main(String[]args){
    AndroidApp test = new AndroidApp();

}

class AnswerButton extends JButton{
    private int pointValue;

    public AnswerButton(String buttonName, int p){
        super(buttonName);
        pointValue = p;
    }

    public int getPointValue(){
        return pointValue;
    }
}
}

只需給正確的答案按鈕一定數量的分數,並給不正確的答案0點。

那不是解決問題的好方法。 在Android上使用Fragment API。 如果您還沒有學會,請閱讀adapters

本質上,您可以為每個問題創建片段分頁器,為按鈕單擊聲明接口,並更新活動中的字段。

編輯

我將在較高層次上概述流程,但復制粘貼肯定不會起作用。

創建一個適配器,為每個問題提供一個新的片段實例。

class QuestionsAdapter extends FragmentPagerAdapter {

@Override
public Fragment getItem(int position) {
        //Here you create a new instance of the fragment for each of your page
       Fragment f = new QuestionsFragment.newInstance(int position);

       return f;
}

}

然后創建一個QuestionsFragment片段

覆蓋onCreateView()並在每個問題屏幕上提供要使用的布局。

要在您的活動上添加可交換的尋呼機,請使用ViewPager ViewGroup。

頁面上很好地說明了添加片段,將數據饋入其中以及從中取出數據的所有方法。 在線搜索特定的實現示例,以縫合可運行的應用程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM