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

团队选题:小学四则运算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>

运行界面:

   

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);
	}

}

运行界面:

    

 

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的功能,以获得更多用户的喜爱,得以推广。