我的测试引擎架构是否正确?

时间:2014-10-10 15:46:06

标签: java android

我正在编写一个测试引擎学习.1问题,4个可能的答案。 我有107个问题。为了改变问题,我明确了另一个活动的意图。 我做了107次活动是正常的吗?是正确的吗? 有一些简单而有效的方法吗? package com.example.examtest;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.TextView;
import android.widget.Toast;

/**
 * @author JoanAlonso
 *
 */
public class MainActivity extends Activity {

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

        /** si recibe false cerrara la app */

        if (getIntent().getBooleanExtra("EXIT", false)) {

            finish();
        }

    }

    /**
     * si un radio que se checkea, es el mismo que el id del radioButton
     * correcto, se incrementa a la variable estatica "punto", 1 entero
     */

    public void onRadioClicked(View view) {
        RadioGroup rgOpciones = (RadioGroup) findViewById(R.id.radioGroup);
        int SelectedID = rgOpciones.getCheckedRadioButtonId();


        if (SelectedID == R.id.radio_two) {

            MainGetSet.incrementaPunto();

        }
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        MenuInflater inflater = getMenuInflater();

        inflater.inflate(R.menu.options_menu, menu);
        View item = (View)findViewById(R.id.finish);

        return true;

    }

    /**
     * se hacen cliclable los items del menu , Si el "id" del grupo de
     * radioButtons es el mismo que el "id" del radioButton seleccionado ,se le
     * pasa un texto y el valor de la variable "punto".
     **/
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        switch (item.getItemId()) {

        case R.id.finish:
            RadioGroup rgOpciones = (RadioGroup) findViewById(R.id.radioGroup);
            int SelectedID = rgOpciones.getCheckedRadioButtonId();

            if (SelectedID == R.id.radio_two) {
                int num = MainGetSet.getPunto();
                Intent intent = new Intent(MainActivity.this, Estadistics.class);
                intent.putExtra("text", "Correct answers: ");
                intent.putExtra("number", num);
                startActivity(intent);
                MainGetSet.clean();

            }

            /**
             * si el id del grupo de radioButton es distinto que el correcto: se
             * envia un texto con la variable punto,que no se verá variada ya
             * que nos hemos asegurado que la variable se modifique fuera de
             * este item.
             */
            if (!(SelectedID == R.id.radio_two)) {

                int punto = MainGetSet.getPunto();

                Intent intent = new Intent(MainActivity.this, Estadistics.class);
                intent.putExtra("text", "Correct answers: ");
                intent.putExtra("number", punto);
                startActivity(intent);

            }
            return true;
            /**
             * aqui se cierra la apliacion. Por ser la activity launcher sólo
             * hace falta utilizar finish();
             * Se deja a cero la variable "punto"
             * 
             */
        case R.id.cancelExam:
            finish();
            MainGetSet.clean();
            return true;

            /**
             * si en el menu se presiona el item el color del textView donde
             * está la opcion correcta cambia a gris claro. ese textView no se
             * podrá volver a clicar una segunda vez
             */
        case R.id.answer:
            TextView re = (TextView) findViewById(R.id.radio_two);
            re.setBackgroundColor(Color.LTGRAY);
            re.setEnabled(false);

            return true;

        default:
            return super.onOptionsItemSelected(item);
        }
    }

    public void onClickNext(View view) {
        Intent intent = new Intent(MainActivity.this, SecondActivity.class);
        startActivity(intent);

    }

}

1 个答案:

答案 0 :(得分:0)

更好的方法是为问题创建一个布局(如果可能),并使用点击的数据重新填充视图