小学四则运算APP 第一个冲刺阶段 第四天

团队成员:陈淑筠、杨家安、陈曦

团队选题:小学四则运算APP

第一次冲刺阶段时间:11.17~11.27

本次发布我们增加了CalculatorsActivity.java、YunsuanActivity.java、ResultActivity.java这三个Activity,主要有MainActivity.java、TypesActivity.java、CalculatorActivity.java、CalculatorsActivity.java、YunsuanActivity.java、ResultActivity.java这六个Actvity,其中MainActivity.java:主界面,TypesActivity.java:按了主界面中的“进入”按钮后,跳到练习题类型选择“单题练习”或“多选择练习”,CalculatorActivity.java:是“单题练习“界面,CalculatorsActivity.java:是”多选择练习“的提供给用户的选择功能界面,YunsuanActivity.java:是”多选择练习“的按用户选择的功能的出题界面。

新增的代码和界面如下:

CalculatorsActivity.java:

package com.example.calculator;

import android.os.Bundle;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.RadioGroup.OnCheckedChangeListener; public class CalculatorsActivity extends Activity {
private Button beginbtn;
private RadioGroup choice;
private int[] string=new int[]{1,2,3,4};
private EditText edweishu,editshu,timeminutes,timeseconds; @Override
protected void onCreate(Bundle savedInstanceState) {
ActionBar actionBar=getActionBar();
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_calculators);
beginbtn=(Button)findViewById(R.id.button1);
final RadioGroup choice=(RadioGroup)findViewById(R.id.group);
final int[] string=new int[]{1,2,3,4};
choice.setOnCheckedChangeListener(new OnCheckedChangeListener() { @Override
public void onCheckedChanged(RadioGroup arg0, int arg1) {
// TODO Auto-generated method stub
RadioButton r=(RadioButton)findViewById(arg1);
r.getText();
}
});
edweishu=(EditText)findViewById(R.id.editText1);
editshu=(EditText)findViewById(R.id.editText2);
timeminutes=(EditText)findViewById(R.id.editText3);
timeseconds=(EditText)findViewById(R.id.editText4); //"开始"按钮的点击事件
beginbtn.setOnClickListener(new OnClickListener() {
int send=0;
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
for(int i=0;i<4;i++){
RadioButton r=(RadioButton)choice.getChildAt(i);
if(r.isChecked()){
send=string[i];
break;
}
}
String strweishu=edweishu.getText().toString();
String strtishu=editshu.getText().toString();
String strtimeminutes=timeminutes.getText().toString();
String strtimeseconds=timeseconds.getText().toString(); int intweishu=Integer.parseInt(strweishu);
int inttishu=Integer.parseInt(strtishu);
int inttimeminutes=Integer.parseInt(strtimeminutes);
int inttimeseconds=Integer.parseInt(strtimeseconds); Intent intent=new Intent(CalculatorsActivity.this,YunsuanActivity.class);
Bundle bundle=new Bundle();
bundle.putInt("suanfa", send);
bundle.putInt("tishu", inttishu);
bundle.putInt("weishu",intweishu);
bundle.putInt("timeminutes", inttimeminutes);
bundle.putInt("timeseconds", inttimeseconds);
intent.putExtras(bundle); startActivity(intent);
}
});
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.calculators, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case android.R.id.home:
//创建启动MainActivity的Intent
Intent intent=new Intent(this,TypesActivity.class);
//添加额外的Flag,将Activity栈中处于MainActivity之上的Activity弹出
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
break; default:
break;
}
return super.onOptionsItemSelected(item);
} }

activity_calculators.xml:

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/animal"
tools:context=".CalculatorsActivity" > <TableLayout android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" > <TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="输入位数" /> <EditText
android:id="@+id/editText1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="5"
android:inputType="number" > <requestFocus />
</EditText>
</TableRow> <TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content" > <TextView
android:id="@+id/textView2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="输入题数" /> <EditText
android:id="@+id/editText2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="5"
android:inputType="number" />
</TableRow> <TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content" > <TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="输入时间" /> <EditText
android:id="@+id/editText3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="3"
android:inputType="number" /> <TextView
android:id="@+id/textView4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="分" /> <EditText
android:id="@+id/editText4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="3"
android:inputType="number"/> <TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="秒" />
</TableRow> <TableRow
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
>
<RadioGroup
android:id="@+id/group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
> <RadioButton
android:id="@+id/radio0"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="@string/add" /> <RadioButton
android:id="@+id/radio2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignLeft="@+id/radio0"
android:layout_below="@+id/radio0"
android:text="@string/jian" /> <RadioButton
android:id="@+id/radio1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/cheng" /> <RadioButton
android:id="@+id/radio3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/chu" />
</RadioGroup>
</TableRow> <TableRow
android:id="@+id/tableRow5"
android:layout_width="wrap_content"
android:layout_height="wrap_content" > </TableRow> <Button
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="开始" /> </TableLayout>
</RelativeLayout>

运行界面:

小学四则运算APP 第一个冲刺阶段 第四天   小学四则运算APP 第一个冲刺阶段 第四天

YunsuanActivity.java:

package com.example.calculator;

import android.os.Bundle;
import android.os.SystemClock;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.text.InputType;
import android.text.TextUtils;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Chronometer;
import android.widget.Chronometer.OnChronometerTickListener;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.TextView; public class YunsuanActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
ActionBar actionBar=getActionBar();
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_yunsuan);
final LinearLayout ll=(LinearLayout)findViewById(R.id.yunsuan);
Intent inten=getIntent();
Bundle bundle=inten.getExtras();
final int tishu=bundle.getInt("tishu");
int weishu=bundle.getInt("tishu");
int inttimeminutes=bundle.getInt("timeminutes");
int inttimeseconds=bundle.getInt("timeseconds"); final int suanfa=bundle.getInt("suanfa");
final EditText[] input=new EditText[tishu];
TextView[] showti=new TextView[tishu];
final int[] shu1=new int[tishu];
final int[] shu2=new int[tishu];
final int[] result=new int[tishu];
final String[] user=new String[tishu];
final Chronometer ch=new Chronometer(this);
ch.setBase(SystemClock.elapsedRealtime());
ch.setFormat("已用时间,%s");
ch.start(); String show="";
String suan="";
ll.addView(ch); //题数设定
int setweishu=1;
for(int i=0;i<weishu;i++){
setweishu*=10;
}
//加法
if(suanfa==1){
suan="+";
for(int i=0;i<tishu;i++){
show="";
int a=(int)(Math.random()*setweishu);
int b=(int)(Math.random()*setweishu);
shu1[i]=a;
shu2[i]=b;
result[i]=a+b;
String sa=Integer.toString(a);
String sb=Integer.toString(b);
showti[i]=new TextView(this);
show+="\n"+sa+suan+sb+"=";
showti[i].setText(show); input[i]=new EditText(this);
input[i].setInputType(InputType.TYPE_CLASS_NUMBER);
ll.addView(showti[i]);
ll.addView(input[i]);
} final Button finish=new Button(this);
finish.setText("完成");
ll.addView(finish); //计时器时间到
final int timeover=inttimeminutes*60+inttimeseconds;
ch.setOnChronometerTickListener(new OnChronometerTickListener() { @Override
public void onChronometerTick(Chronometer arg0) {
// TODO Auto-generated method stub
if(SystemClock.elapsedRealtime()-ch.getBase()>=timeover*1000){
finish.callOnClick();
} }
}); //点击“完成”按钮事件
finish.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
for(int i=0;i<user.length;i++){
if(TextUtils.isEmpty(input[i].getText())){
user[i]="null";
}
else{
user[i]=input[i].getText().toString();
}
}
ch.stop();
String time=ch.getText().toString();
Intent intent=new Intent(YunsuanActivity.this,ResultActivity.class);
Bundle bundle=new Bundle();
bundle.putIntArray("shu1", shu1);
bundle.putIntArray("shu2", shu2);
bundle.putStringArray("user", user);
bundle.putInt("suanfa", suanfa);
bundle.putIntArray("result", result);
bundle.putString("time", time);
intent.putExtras(bundle);
startActivity(intent);
}
});
} //减法
if(suanfa==2){
suan="-";
for(int i=0;i<tishu;i++){
show="";
int a=(int)(Math.random()*setweishu);
int b=(int)(Math.random()*setweishu);
if(a<b){
int c=a;a=b;b=c;
}
shu1[i]=a;
shu2[i]=b;
result[i]=a-b;
String sa=Integer.toString(a);
String sb=Integer.toString(b);
showti[i]=new TextView(this);
show+="\n"+sa+suan+sb+"=";
showti[i].setText(show); input[i]=new EditText(this);
input[i].setInputType(InputType.TYPE_CLASS_NUMBER);
ll.addView(showti[i]);
ll.addView(input[i]);
} final Button finish=new Button(this);
finish.setText("完成");
ll.addView(finish);
final int timeover=inttimeminutes*60+inttimeseconds;
ch.setOnChronometerTickListener(new OnChronometerTickListener() { @Override
public void onChronometerTick(Chronometer arg0) {
// TODO Auto-generated method stub
if(SystemClock.elapsedRealtime()-ch.getBase()>=timeover*1000){
finish.callOnClick();
}
}
}); finish.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
for(int i=0;i<user.length;i++){
if(TextUtils.isEmpty(input[i].getText())){
user[i]="null";
}
else{
user[i]=input[i].getText().toString();
}
}
ch.stop();
String time=ch.getText().toString(); Intent intent=new Intent(YunsuanActivity.this,ResultActivity.class);
Bundle bundle=new Bundle();
bundle.putIntArray("shu1", shu1);
bundle.putIntArray("shu2", shu2);
bundle.putStringArray("user", user);
bundle.putInt("suanfa", suanfa);
bundle.putIntArray("result", result);
bundle.putString("time", time); intent.putExtras(bundle);
startActivity(intent);
}
});
} //乘法
if(suanfa==3){
suan="*";
for (int i=0;i<tishu;i++){
show="";
int a=(int)(Math.random() * setweishu);
int b=(int)(Math.random() * setweishu);
shu1[i]=a;
shu2[i]=b;
result[i]=a*b;
String sa=Integer.toString(a);
String sb=Integer.toString(b);
showti[i]=new TextView(this);
show+="\n"+sa+suan+sb+"=";
showti[i].setText(show);
input[i]=new EditText(this);
input[i].setInputType(InputType.TYPE_CLASS_NUMBER);
ll.addView(showti[i]);
ll.addView(input[i]);
}
final Button finish=new Button(this);
finish.setText("完成");
ll.addView(finish);
final int timeover=inttimeminutes*60+inttimeseconds; ch.setOnChronometerTickListener(new OnChronometerTickListener() { @Override
public void onChronometerTick(Chronometer arg0) {
// TODO Auto-generated method stub
if(SystemClock.elapsedRealtime()-ch.getBase()>=timeover*1000){
finish.callOnClick();
}
}
}); finish.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
for(int i=0;i<user.length;i++){
if(TextUtils.isEmpty(input[i].getText())){
user[i]="null";
}
else{
user[i]=input[i].getText().toString();
}
}
ch.stop();
String time=ch.getText().toString(); Intent intent=new Intent(YunsuanActivity.this,ResultActivity.class);
Bundle bundle=new Bundle();
bundle.putIntArray("shu1", shu1);
bundle.putIntArray("shu2", shu2);
bundle.putStringArray("user", user);
bundle.putInt("suanfa", suanfa);
bundle.putIntArray("result", result);
bundle.putString("time", time); intent.putExtras(bundle);
startActivity(intent);
} });
} //除法
if(suanfa==4){
suan="/";
for (int i=0;i<tishu;i++){
show="";
int a=(int)(Math.random() * setweishu);
int b=(int)(Math.random() * setweishu);
if(a<b){int c=a;a=b;b=c;}
shu1[i]=a;
shu2[i]=b;
result[i]=a/b;
String sa=Integer.toString(a);
String sb=Integer.toString(b);
showti[i]=new TextView(this);
show+="\n"+sa+suan+sb+"=";
showti[i].setText(show);
input[i]=new EditText(this);
input[i].setInputType(InputType.TYPE_CLASS_NUMBER);
ll.addView(showti[i]);
ll.addView(input[i]);
}
final Button finish=new Button(this);
finish.setText("完成");
ll.addView(finish);
final int timeover=inttimeminutes*60+inttimeseconds;
ch.setOnChronometerTickListener(new OnChronometerTickListener() { @Override
public void onChronometerTick(Chronometer arg0) {
// TODO Auto-generated method stub
if(SystemClock.elapsedRealtime()-ch.getBase()>=timeover*1000){
finish.callOnClick();
}
}
}); finish.setOnClickListener(new OnClickListener() { @Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
for(int i=0;i<user.length;i++){
if(TextUtils.isEmpty(input[i].getText())){
user[i]="null";
}
else{
user[i]=input[i].getText().toString();
}
}
ch.stop();
String time=ch.getText().toString();
Intent intent=new Intent(YunsuanActivity.this,ResultActivity.class);
Bundle bundle=new Bundle();
bundle.putIntArray("shu1", shu1);
bundle.putIntArray("shu2", shu2);
bundle.putStringArray("user", user);
bundle.putInt("suanfa", suanfa);
bundle.putIntArray("result", result);
bundle.putString("time", time); intent.putExtras(bundle);
startActivity(intent);
}
});
}
} private void setContentView(
android.widget.LinearLayout.LayoutParams layoutParams) {
// TODO 自动生成的方法存根 } private void addContentView(TextView textView,
android.widget.LinearLayout.LayoutParams[] p) {
// TODO 自动生成的方法存根 } @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.yunsuan, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case android.R.id.home:
//创建启动MainActivity的Intent
Intent intent=new Intent(this,CalculatorsActivity.class);
//添加额外的Flag,将Activity栈中处于MainActivity之上的Activity弹出
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
break; default:
break;
}
return super.onOptionsItemSelected(item);
} }

运行界面:

小学四则运算APP 第一个冲刺阶段 第四天    小学四则运算APP 第一个冲刺阶段 第四天

ResultActivity.java:

package com.example.calculator;

import android.os.Bundle;
import android.app.ActionBar;
import android.app.Activity;
import android.content.Intent;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.TextView; public class ResultActivity extends Activity { @Override
protected void onCreate(Bundle savedInstanceState) {
ActionBar actionBar=getActionBar();
actionBar.setDisplayShowHomeEnabled(true);
actionBar.setDisplayHomeAsUpEnabled(true);
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_result);
Intent inten=getIntent();
Bundle bundle=inten.getExtras();
TextView text=(TextView)findViewById(R.id.textresult);
TextView text2=(TextView)findViewById(R.id.textView1);
int[] shu1=inten.getIntArrayExtra("shu1");
int[] shu2=inten.getIntArrayExtra("shu2");
int[] result=inten.getIntArrayExtra("result");
int suanfa=bundle.getInt("suanfa");
String time=bundle.getString("time");
String showfa="";
if(suanfa==1){showfa="+";}
if(suanfa==2){showfa="-";}
if(suanfa==3){showfa="*";}
if(suanfa==4){showfa="/";}
String[] user=inten.getStringArrayExtra("user");
String aaa="";
int score=0;
String show4;
String[] jie=new String[]{"正确","错误"}; for (int i=0;i<shu1.length;i++){
String show1="";
String show2="";
String show3="";
show1=Integer.toString(shu1[i]);
show2=Integer.toString(shu2[i]);
show3=Integer.toString(result[i]); if(user[i].equals(show3)){show4=jie[0];score++;}
else { show4=jie[1];}
aaa+=show1+showfa+show2+"="+show3+" "+user[i]+" "+show4+"\n";
text.setText(aaa);
}
text2.setText(time+"总得分为"+score*10);
} @Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.result, menu);
return true;
} @Override
public boolean onOptionsItemSelected(MenuItem item) {
// TODO Auto-generated method stub
switch (item.getItemId()) {
case android.R.id.home:
//创建启动MainActivity的Intent
Intent intent=new Intent(this,CalculatorsActivity.class);
//添加额外的Flag,将Activity栈中处于MainActivity之上的Activity弹出
intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
startActivity(intent);
break; default:
break;
}
return super.onOptionsItemSelected(item);
} }

activity_result.xml:

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
android:background="@drawable/animal"
android:scrollbars="vertical"
tools:context=".ResultActivity" > <LinearLayout
android:layout_width="fill_parent"
android:layout_height="202dp"
android:orientation="vertical" > <TextView
android:id="@+id/texttitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="55dp"
android:text=" 正确答案 你的答案 判断" /> <TextView
android:id="@+id/textresult"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:text="TextView" /> <TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView" /> </LinearLayout>
</ScrollView>

  

运行界面:

小学四则运算APP 第一个冲刺阶段 第四天

接下来,我们会继续完善APP,根据更多用户的需求去改变我们APP的功能,以获得更多用户的喜爱,得以推广。

上一篇:Mysql-如何正确的使用索引以及索引的原理


下一篇:小学四则运算APP 第一个冲刺阶段 第一天