我正在编写一个测试引擎学习.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);
}
}
答案 0 :(得分:0)
更好的方法是为问题创建一个布局(如果可能),并使用点击的数据重新填充视图