安卓版四则运算

      这次编程主要是对我们之前编写的C++四则运算进行移植,将其一直到安卓手机平台,因为之前做的是C++版本的,所以做起来饶了很多弯路,需要现将其改编为Java语言,在进行后续工作。

      这个个安卓程序主有三个Activity界面,第一个上边输入想要做的题目数量,用intent将其传值道第二个Activity界面上,然后根据这些条件出题,每个题目由3-5个数组成,最后能算出答案并进行比较,结束后会统计做对的题目数量,然后给出正确率。第三个界面则是对这个软件的介绍了,如何使用和版本等信息。

      我们的代码主要如下:     

      第一个布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/background"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="40dp"
        android:text="易百分"
        android:textColor="#0000FF"
        android:textSize="30dp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_weight="0.02"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="30dp"
            android:text="请输入题目数量"
            android:textSize="20sp" />

        <EditText
            android:id="@+id/edtnumber"
            android:layout_width="107dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="10dp"
            android:ems="10"
            android:inputType="numberSigned" >

            <requestFocus />
        </EditText>

        <RadioGroup
            android:id="@+id/radioGroup1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="20dp" >

            <RadioButton
                android:id="@+id/radio0"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:checked="true"
                android:text="一位数运算" />

            <RadioButton
                android:id="@+id/radio1"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_marginTop="10dp"
                android:text="两位数运算" />

        </RadioGroup>

        <Button
            android:id="@+id/btnTijiao"
            android:layout_width="123dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="30dp"
            android:onClick="onClickTijiao2"
            android:text="提 交" />
    </LinearLayout>

</LinearLayout>

     这个界面对应的Java文件:

 1 package com.ml.caculate;
 2 
 3 import android.app.Activity;
 4 import android.app.AlertDialog;
 5 import android.content.Intent;
 6 import android.os.Bundle;
 7 import android.view.ContextMenu;
 8 import android.view.ContextMenu.ContextMenuInfo;
 9 import android.view.View;
10 import android.widget.EditText;
11 import android.widget.RadioButton;
12 import android.widget.RadioGroup;
13 import android.widget.RadioGroup.OnCheckedChangeListener;
14 import android.widget.TextView;
15 
16 public class page2 extends Activity {
17     
18      TextView tv1;
19      EditText edtnum;
20      RadioButton mRadio1;
21      RadioButton mRadio2;
22      RadioGroup genderGroup;
23      String info="0";
24     @Override
25     protected void onCreate(Bundle savedInstanceState) {
26         // TODO Auto-generated method stub
27         super.onCreate(savedInstanceState);
28         setContentView(R.layout.help2);
29         tv1=(TextView)findViewById(R.id.textView2);
30         edtnum=(EditText)findViewById(R.id.edtnumber);
31         mRadio1 = (RadioButton) findViewById(R.id.radio0);
32         mRadio2 = (RadioButton) findViewById(R.id.radio1);
33         genderGroup=(RadioGroup)findViewById(R.id.radioGroup1);
34         genderGroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {
35             
36             @Override
37             public void onCheckedChanged(RadioGroup group, int checkedId) {
38                 // TODO Auto-generated method stub
39                 if (checkedId == mRadio1.getId()) 
40                 {
41                     info="0";
42                 }
43                 else if (checkedId == mRadio2.getId())
44                 {
45                     info="1";
46                 }
47             }
48         });
49 
50         
51     }
52 
53     @Override
54     public void onCreateContextMenu(ContextMenu menu, View v,
55             ContextMenuInfo menuInfo) {
56         // TODO Auto-generated method stub
57         
58         super.onCreateContextMenu(menu, v, menuInfo);
59     }    
60     
61     public void onClickTijiao2(View v)
62     {
63         String S1=edtnum.getText().toString();
64         if(S1.length()==0)         //判断输入框是否为空
65         {
66             new AlertDialog.Builder(this)
67             .setTitle("提示信息")
68             .setMessage("您还没有输入数量")
69             .setPositiveButton("现在输入", null)
70             .show();
71         }
72         else
73         {
74             String R=info;     //传值表示式子类型
75             String number=edtnum.getText().toString();
76             Intent intent=new Intent();
77             intent.setClass(page2.this,MainActivity.class);
78             intent.putExtra("extra", number);     //put传到另一个界面
79             intent.putExtra("redio", R);          //put传到另一个界面
80             
81             //启动
82             this.startActivity(intent); 
83         }
84         
85     }
86     
87     
88 }

  第二个布局文件,也是实现主要功能的布局:

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context=".MainActivity" >

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:gravity="center_vertical"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="24dp"
            android:text="小学生计算题"
            android:textSize="26dp" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="30dp"
        android:gravity="center" >

        <TextView
            android:id="@+id/tvNum"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="请"
            android:textSize="20dp" />

        <TextView
            android:id="@+id/tvSuanshi"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="点击下一题开始做题"
            android:textSize="20sp" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="110dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="30dp"
            android:text="输入你的结果"
            android:textSize="18dp" />

        <EditText
            android:id="@+id/editText1"
            android:layout_width="105dp"
            android:layout_height="wrap_content"
            android:layout_marginTop="20dp"
            android:ems="10"
            android:inputType="none"
            android:text="" />

    </LinearLayout>

    <LinearLayout
        android:layout_width="200dp"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="25dp"
        android:onClick="onClickYes" >

        <Button
            android:id="@+id/btnYes"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:onClick="onClickYes"
            android:text="确 定" />

        <Button
            android:id="@+id/btnClear"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:onClick="ClearClick"
            android:text="下一题" />

    </LinearLayout>

    <TextView
        android:id="@+id/textView2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="90dp"
        android:text="版本号:V 15.04.0001" />

</LinearLayout>

  对应的Java文件:

package com.ml.caculate;


import java.math.BigDecimal;
import java.util.Stack;
import android.os.Bundle;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.DialogInterface.OnClickListener;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends Activity {
    
    /* (non-Javadoc)
     * @see android.app.Activity#onOptionsItemSelected(android.view.MenuItem)
     */
    

    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // TODO Auto-generated method stub
        int id=item.getItemId();
        
        if(id==R.id.action_settings)
        {
            Intent i = new Intent(MainActivity.this , page1.class);
            //启动帮助说明界面
            startActivity(i); 
            return true;
        }
        return super.onOptionsItemSelected(item);
        
    }

    TextView ss,suanshi,zhengque,nandu;
    EditText edtResult;
    int j=10;
    boolean i=true;
    int num=0;
    String str=Way_1();
    int shumu=0;
    
    int trr=0,err=0;
    
    
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ss=(TextView)findViewById(R.id.tvNum);
        zhengque=(TextView)findViewById(R.id.textView1);
        nandu=(TextView)findViewById(R.id.textView4);
        suanshi=(TextView)findViewById(R.id.tvSuanshi);
        edtResult=(EditText)findViewById(R.id.editText1);
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        ss.setText("");
        return true;
    }

    //产生算式的函数
   private static int Operands_2() /*1-9*/
    {
        int Operand=(int)(Math.random()*9)+1;
        return Operand;
    }
    private static int Operands_3() /*1-99*/
    {
        int Operand=(int)(Math.random()*99)+1;
        return Operand;
    }
    private static String Operator_1(String formula)/*随机产生运算符   有乘除*/
    {
        int f=(int)(Math.random()*4);
        if(f==0) 
        {
            formula+="+";
        }
        if(f==1)
        {
            formula+="-";
        }
        if(f==2)
        {
            formula+="*";
        }
        if(f==3)
        {
            formula+="/";
        }
        return formula;
    }
    private static String Way_1() /*最多可支持10个数参与计算   有乘除 有括号 10以内 加减有负数 除法有余数*/
    {
        String formula="";
        int length=(int)(Math.random()*1)+3; /*随机产生表达式中操作数的个数 3-4 个*/
        int left=0,right=0,flag=0,left_1;
        for(int i=0;i<length-1;i++)
        {
            left_1=left;
           // left=Bracket_l(left,formula);
            //---------
            int f=(int)(Math.random()*3);
            if(f<2)
            {
            }
            if(f==2)
            {
                formula+="(";
                left++;
            }
            //******
            if(left_1!=left)     /*产生了左括号  flag=i*/
            {
                flag=i;
            }
            formula+=Operands_2();
            if(left>right&&flag!=i) /*左括号大于右括号的个数 and 产生左括号和右括号不在一个循环里  即不会产生“(随机数)” 这种无效情况*/
            {
                //right=Bracket_r(right,formula);
                int r=(int)(Math.random()*5);
                if(r==0)
                {
                }
                if(r>0) /*产生右括号的概率大 */
                {
                    formula+=")";
                    right++;
                }
            }
            formula=Operator_1(formula);  /*有乘除*/
        }
        /*因为 一个操作数一个运算符   还缺少一个操作数 (0 -- 9)*/
        formula+=Operands_2();
        for(int i=0;i<left-right;i++)
        {
            formula+=")";
        }
        return formula+="#";
    }
    private static String Way_2() /*   有乘除 有括号 100以内 加减有负数 除法有余数*/
    {
        String formula="";
        int length=(int)(Math.random()*1)+3; /*随机产生表达式中操作数的个数3-4 个*/
        int left=0,right=0,flag=0,left_1;
        for(int i=0;i<length-1;i++)
        {
            left_1=left;
           // left=Bracket_l(left,formula);
            //---------
            int f=(int)(Math.random()*3);
            if(f<2)
            {
            }
            if(f==2)
            {
                formula+="(";
                left++;
            }
            //******
            if(left_1!=left)     /*产生了左括号  flag=i*/
            {
                flag=i;
            }
            formula+=Operands_3();
            if(left>right&&flag!=i) /*左括号大于右括号的个数 and 产生左括号和右括号不在一个循环里  即不会产生“(随机数)” 这种无效情况*/
            {
                //right=Bracket_r(right,formula);
                int r=(int)(Math.random()*5);
                if(r==0)
                {
                }
                if(r>0) /*产生右括号的概率大 */
                {
                    formula+=")";
                    right++;
                }
            }
            formula=Operator_1(formula);  /*有乘除*/
        }
        /*因为 一个操作数一个运算符   还缺少一个操作数 (0 -- 9)*/
        formula+=Operands_3();
        for(int i=0;i<left-right;i++)
        {
            formula+=")";
        }
        return formula+="#";
    }
    //----------------------------------------------
    static double jisuan(double x,double y,char oper)
    { 
        switch(oper)
        {
        case '+':
            {
                return x+y;
            } 
        case '-':
            {
                return x-y;
            }
        case '*':
            {
                return x*y;
            } 
        case '/':
            {
                return x/y;
            }  
        }
        return 0;
    }

    static char precede(char ch1,char ch2)
    {
        int i = 0,j=0;
        char[][] a={        //优先级对照表,依次为+ - * / ( ) #
            //  +   -   *   /   (   )   #
                {'>','>','<','<','<','>','>'},    // +
                {'>','>','<','<','<','>','>'},    // - 
                {'>','>','>','>','<','>','>'},    // * 
                {'>','>','>','>','<','>','>'},    // /
                {'<','<','<','<','<','=','0'},    // (
                {'>','>','>','>','0','>','>'},    //
                {'<','<','<','<','<','0','='}     // #
        };
        switch(ch1)
        {
            //优先级与矩阵匹配
        case '+':
            {
                i=0;
                break;
            }
        case '-':
            {
                i=1;
                break;
            }
        case '*':
            {
                i=2;
                break;
            }
        case '/':
            {
                i=3;
                break;
            }
        case '(':
            {
                i=4;
                break;
            }
        case ')':
            {
                i=5;
                break;
            }
        case '#':
            {
                i=6;
                break;
            }
        }
        switch(ch2)
        {
            //优先级与矩阵匹配
        case '+':
            {
                j=0;
                break;
            }
        case '-':
            {
                j=1;
                break;
            }
        case '*':
            {
                j=2;
                break;
            }
        case '/':
            {
                j=3;
                break;
            }
        case '(':
            {
                j=4;
                break;
            }
        case ')':
            {
                j=5;
                break;
            }
        case '#':
            {
                j=6;
                break;
            }
        }
        return a[i][j];
    }

    static double fun(String str)
    {
        double result = 0;
        Stack<Character>  optr = new Stack<Character> ();  
        Stack<Double>  opnd = new Stack<Double>();  
        //SqStack optr,opnd;     //运算符   操作数
        //InitStack(optr);
        //push(optr,'#');
        optr.push('#');
        //InitStack(opnd);
        int length=str.length();
        int i=0;
        char ch;
        char s[] = str.toCharArray();
        ch=s[i];
        while(ch!='#'||optr.peek()!='#'&&i<length)
        {
            if(ch>='0'&&ch<='9')
            {
                char chh=s[++i];
                if(chh>='0'&&chh<='9')
                {
                    double c=(ch-48)*10+chh-48;
                    opnd.push(c);
                    ch=s[++i];
                }
                else
                {
                    double c=ch-48;
                    opnd.push(c);
                    ch=chh;
                }
                
            }
            else
                switch(precede(optr.peek(),ch)){
                case '<':
                    {
                        //push(optr,ch);
                        optr.push(ch);
                        ch=s[++i];
                        break;
                    }
                case '>':
                    {
                        //double y=pop1(opnd);
                        //double x=pop1(opnd);
                        double y=opnd.pop();
                        double x=opnd.pop();
                        char c=optr.pop();
                        result=jisuan(x,y,c);
                        //push1(opnd,result+48);
                        opnd.push(result);
                        break;
                    }
                case '=':
                    {
                        //pop(optr);
                        optr.pop();
                        ch=s[++i];
                        break;
                    }
            }
        }
        return result;
    }

    public void onClickYes(View v)  //确定按钮
    {
        Intent intent = getIntent();
        String nn=intent.getStringExtra("extra");
        int number=Integer.parseInt(nn);    //从前一个界面传过来的值
        if(shumu==number)
        {
            new AlertDialog.Builder(this)
            .setTitle("提示信息")
            .setMessage("您已经做完"+number+"道题,共答对"+trr+"道题")
            .setPositiveButton("OK", null)
            .show(); 
        }
        String S1=edtResult.getText().toString();
        if(ss.getText()=="请"||S1.length()==0)         //判断输入框是否为空
        {
            new AlertDialog.Builder(this)
            .setTitle("提示信息")
            .setMessage("您还没有输入答案或还没开始")
            .setPositiveButton("现在输入", null)
          //.setNegativeButton("是", null)
            .show(); 
        }
        else
        {
            String str=ss.getText().toString();
            double result1 = fun(str);
            BigDecimal bg = new BigDecimal(result1);
            double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
      //      ss.setText(str);
            double answer=Double.valueOf(edtResult.getText().toString());
            if (answer!=f1)
            {
                new AlertDialog.Builder(this)
                .setTitle("错误提示")
                .setMessage("很遗憾 ,回答错误!")
                .setNegativeButton("下一题",new OnClickListener() {
                    
                    @Override
                    public void onClick(DialogInterface arg0, int arg1) {
                        // TODO Auto-generated method stub
                        Intent intent = getIntent();
                        String rr=intent.getStringExtra("redio");
                        int red=Integer.parseInt(rr);
                        if(red==0)
                        {
                            String str=Way_1();
                            ss.setText(str);
                            zhengque.setText("小学生计算题");
                            suanshi.setText(" ?");
                        }
                        else
                        {
                            String str=Way_1();
                            ss.setText(str);
                            zhengque.setText("小学生计算题");
                            suanshi.setText(" ?");
                        }
                    }
                })
                .show(); 
                shumu++;
            }
            else if(answer==f1)
            {
                suanshi.setText(" ?");
                zhengque.setText("恭喜回答正确!!!");
                ss.setText("请点击下一道题,继续...");
                trr++;
            }
            edtResult.setText("");
        }
    }   
    
    public void ClearClick(View v)  //下一题按钮

    {
        Intent intent = getIntent();
        String nn=intent.getStringExtra("extra");
        String rr=intent.getStringExtra("redio");
        int number=Integer.parseInt(nn);    //从前一个界面传过来的值
        int red=Integer.parseInt(rr);
        if(shumu<number)
        {
            edtResult.setText("");
            if(red==0)
            {
                String str=Way_1();
                ss.setText(str);
                zhengque.setText("小学生计算题");
                suanshi.setText(" ?");
                shumu++;
            }
            else
            {
                String str=Way_2();
                ss.setText(str);
                zhengque.setText("小学生计算题");
                suanshi.setText(" ?");
                shumu++;
            }
        }
        else
        {
            new AlertDialog.Builder(this)
            .setTitle("提示信息")
            .setMessage("您已经做完"+number+"道题,共答对"+trr+"道题")
            .setPositiveButton("OK", null)
            .show(); 
            ss.setText("");
            String s2=trr+"/"+number+"#";
            double s=fun(s2);
            BigDecimal bg = new BigDecimal(s);
            double f1 = bg.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
            suanshi.setText("正确率:"+f1*100+"%");
        }
    }
}

帮助说明布局文件:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <TextView
        android:id="@+id/textView1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_gravity="center"
        android:layout_marginTop="40dp"
        android:text="帮助说明"
        android:textSize="24dp" />

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="35dp"
        android:orientation="vertical" >

        <TextView
            android:id="@+id/textView2"
            android:layout_width="238dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="16dp"
            android:layout_weight="0.59"
            android:text="1.您可以选择题目数量。"
            android:textSize="20dp" />

        <TextView
            android:id="@+id/textView3"
            android:layout_width="238dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="16dp"
            android:layout_weight="0.59"
            android:text="2.您可以选择有无乘除。"
            android:textSize="20dp" />

         <TextView
            android:id="@+id/textView4"
            android:layout_width="238dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="16dp"
            android:layout_weight="0.59"
            android:text="3.结果是小数的,保留两位小数。"
            android:textSize="20dp" />
         
         
          <TextView
            android:id="@+id/textView5"
            android:layout_width="238dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="16dp"
            android:layout_weight="0.59"
            android:text="4.结果是整数的,保留一位小数。"
            android:textSize="20dp" />
          
                    <TextView
            android:id="@+id/textView6"
            android:layout_width="238dp"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:layout_marginTop="16dp"
            android:layout_weight="0.59"
            android:text="5.预祝你取得好成绩!"
            android:textSize="20dp" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="60dp"
        android:gravity="center_horizontal" >

        <TextView
            android:id="@+id/textView7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_gravity="center"
            android:text="版本号:" />

        <TextView
            android:id="@+id/textView8"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="V 15.04.0001" />
    </LinearLayout>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:gravity="center_horizontal">

        <TextView
            android:id="@+id/textView9"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginTop="10dp"
            android:text="关注博客园:_小学生and小青年" />

    </LinearLayout>

</LinearLayout>

对应的Java文件:

 1 package com.ml.caculate;
 2 
 3 import android.app.Activity;
 4 import android.content.Intent;
 5 import android.os.Bundle;
 6 import android.view.ContextMenu;
 7 import android.view.ContextMenu.ContextMenuInfo;
 8 import android.view.View;
 9 import android.widget.RadioButton;
10 import android.widget.RadioGroup;
11 import android.widget.TextView;
12 
13 public class page1 extends Activity {
14     
15      public RadioGroup rg;
16      public RadioButton mRadio1, mRadio2,mRadio3;
17      String []info=new String [3];
18      TextView tv1;
19 
20     @Override
21     protected void onCreate(Bundle savedInstanceState) {
22         // TODO Auto-generated method stub
23         super.onCreate(savedInstanceState);
24         setContentView(R.layout.help);
25         tv1=(TextView)findViewById(R.id.textView1);
26     }
27 
28     @Override
29     public void onCreateContextMenu(ContextMenu menu, View v,
30             ContextMenuInfo menuInfo) {
31         // TODO Auto-generated method stub
32         super.onCreateContextMenu(menu, v, menuInfo);
33     }
34     
35     public void onClickTijiao1(View v)
36     {
37         Intent i = new Intent("android.intent.action.PAGE2");
38         i.putExtra(info[0], info[0]); 
39         //启动
40         startActivity(i); 
41     }
42 }

结果:

实验感想:

       这次试验有很多细节的地方,比如判空语句,比如判断对错的对话框,光判空语句就占了将近1/4的代码量,做完了这个小软件,感觉一点点成就感。

项目计划总结:      
日期 听课 编写程序 查阅资料 日总计
星期一  2 2 2 6
星期二        
星期三   3 1 4
星期四  2 2   4
星期五   2   2
星期六   3 1 4
星期日   3 1 4
周总计   17 7 24
时间记录日志:          
日期 开始时间 结束时间 中断时间 净时间 活动 备注
4月1日 14:00 16:10 10 120 编写编程 修改程序
4月2日 8:20 10:40 30 110 编写程序 将程序改为Java语言
4月3日 16:30 20:30 30 210 查阅资料 查资料和调试
4月4日 15:00 21:40 100 3000 编程 修改和调试
4月5日 10:00 17:30 90 3600 调试 最终调试
4月6日 18:00 18:30   30 博客 撰写博客
缺陷记录日志:
日期 编号 引入阶段 排除阶段 调试过程中遇到的BUG以及解决办法
4月1日 1 编码 编译 对C++的四则运算进行了修改,变为Java语言
4月2日 2 编码 编译 在安卓里边,每次都在判断下一个结果,修改执行顺序。
4月3日 3 编码 编译 判断时,为了不出现循环小数,我们保留两位小数。
4月4日 4 编码 编译 问题带“#”输出,让其在计算的时候加“#”,输出时没有。
4月4日 5 编码 编译 加入了一个新界面,用来获取用户输入的题目数量和难度。
4月6日 6 编码 编译 页面之间传值过不去,仔细看了一下怎样用Intent传参,问题解决。

队友:于磊 20133078   http://www.cnblogs.com/cnyulei/

原文地址:https://www.cnblogs.com/L-Damon-v/p/5360809.html