在Android中设计和实现简单的计算能力测试系统

2016-11-14 23:45欧阳桂秀
电子技术与软件工程 2016年18期
关键词:计算测试

欧阳桂秀

摘 要

介绍了Android中Intent类的一个构造方法,使用这个构造方法来创建Intent类的对象,实现同一个应用程序中多个Activity对象的切换,从而实现更多的功能。

【关键词】计算 测试 Android Activity Intent

1 引言

一个应用程序可以包含若干个Activity。可以让某个Activity对象使用Intent对象来启动其它的Activity对象。

2 Intent类的一个构造方法

Intent(Context packgeContext ,Class <?> cls):该构造方法的参数packgeContext是当前应用程序所在的上下文,参数cls是打算启动的Activity对象的类的名字。

例如:

假设,已经有如下类的声明:

class Calculator extends Activity

class MainCalculator extends Activity

那么,下面这条语句

Intent intent=new Intent(this,MainCalculator.class);

作用是:当前类的对象(Calculator类的当前对象this),打算启动的Activity对象的类的名字是MainCalculator。

接下来的语句

startActivity(intent);

作用是:实现两个Activity之间的切换。从当前的Activity,启动另外一个Activity,即 MainCalculator。

3 一个Activity对象使用Intent对象来启动另一个Activity对象的实例

【例1】在Android中实现简单的计算能力测试系统。计算随机给出的两位数的加减法算术题,要求用户回答,答对的提示“正确”,答错的提示“错误”。随时给出答题的正确率。

(1)第一个Activity的相关程序,文件Calculator.java:

package com.example.calculate;

import android.os.Bundle;

import android.app.Activity;

import android.app.AlertDialog;

import android.content.ActivityNotFoundException;

import android.view.View;

import android.content.Intent; //加

public class Calculator extends Activity {

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.welcome);

}

public void display(View view){

Intent intent=new Intent(this,MainCalculator.class);

try {

startActivity(intent);

}

catch(ActivityNotFoundException exp) {

AlertDialog.Builder build=new AlertDialog.Builder(this);

AlertDialog dialog = build.create();

dialog.setTitle("can not find activity!");

dialog.show();

}

}

public void endTest(View view){

System.exit(0);

}

}

(2)第二个Activity的相关程序,文件MainCalculator.java:

package com.example.calculate;

import android.app.Activity;

import android.os.Bundle;

import android.view.View;

import android.widget.*;

public class MainCalculator extends Activity {

EditText texta,textb,textc;

TextView labela,label3,label4;

Button problem,judge;

int a,b,right_answer,answer,op,temp;

float p,right,total;

@Override

protected void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.test);

texta = (EditText)findViewById(R.id.texta); //被加数(被减数)

textb= (EditText)findViewById(R.id.textb); //加数(减数)

textc = (EditText)findViewById(R.id.textc); //输入计算结果

labela=(TextView)findViewById(R.id.labela); //运算符“+”或“-”

label3=(TextView)findViewById(R.id.label3); //输出“正确”或“错误”的提示信息

label4=(TextView)findViewById(R.id.label4); //正确率

problem=(Button)findViewById(R.id.problem); //“出题”按钮

judge=(Button)findViewById(R.id.judge); //“判断”按钮

}

public void show(View view){

texta.setText(" ");

textb.setText(" ");

textc.setText(" ");

label3.setText(" ");

a=(int)(Math.random( )*100)+1;

b=(int)(Math.random( )*100)+1;

op=(int)(Math.random( )*2);

if(op<1)

{

labela.setText("+");

texta.setText(String.valueOf(a));

textb.setText(String.valueOf(b));

right_answer=a+b;

}

else

{

labela.setText("-");

if(a

{

temp=a;

a=b;

b=temp;

}

texta.setText(String.valueOf(a));

textb.setText(String.valueOf(b));

right_answer=a-b;

}

}

public void decide(View view){

total++;

String s2=" ";

s2=textc.getText().toString();

answer=Integer.parseInt(s2.trim());

if (right_answer==answer)

{ label3.setText("正确");

right++;

}

else

{ label3.setText("错误");

}

p=(right/total)*100;

String s3=String.format("%.2f", p);

label4.setText("正确率="+s3+"%");

}

}

(3)配置文件AndroidManifest.xml,在之前,新增加Activity 语句如下:

第一个Activity的界面如图1所示。

单击图1的“欢迎测试”按钮,出现的第二个Activity的初始界面如图2所示。

第二个Activity,单击“出题”按钮,输入运算结果,然后单击“判断”按钮,运行结果如图3所示。

4 结束语

通过学习Android中Intent类的构造方法,我们可以使用Intent类的构造方法来创建Intent类的对象,实现同一个应用程序中多个Activity对象的切换,从而实现更多的功能。

这个简单的计算能力测试系统的界面welcome.xml和test.xml比较简单,在这里就不介绍了。另外,这个系统还可以扩展,实现乘、除等计算功能。限于篇幅,不再详细讲解了。

参考文献

[1]耿祥义,张跃平.Android手机程序设计实用教程[M].北京:清华大学出版社,2013.

[2]李刚.疯狂Android讲义[M].北京:电子工业出版社,2013.

[3]明日科技.Android从入门到精通[M].北京:清华大学出版社,2012.

猜你喜欢
计算测试
幽默大测试
“摄问”测试
“摄问”测试
“摄问”测试
提升小学数学核心素养的实践
经济增加值EVA——企业业绩评价新指标