欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  移动技术

android实现简单的乘法计算代码

程序员文章站 2022-07-11 19:36:08
开发环境:android4.1.实验功能:在第一个界面中的2个乘数输入处分别输入2个数字,按下结果button,会自动跳到第二个界面并显示输入2个数字相乘的结果。如果在第一...

开发环境:android4.1.

实验功能:
在第一个界面中的2个乘数输入处分别输入2个数字,按下结果button,会自动跳到第二个界面并显示输入2个数字相乘的结果。如果在第一个界面中点击系统的menu按钮,则会自动弹出一个菜单,菜单栏包括退出和关于2个按钮,点击退出按钮,则退出了该程序。

实验说明:
1.  第1个activity的步骤大概如下:
创建一个监听器。
创建一个intent,并将获取到的2个输入数字分别以键值对的形式输入intent。
连接第1个activity和第2个activity。
启动intent。
把该监听器绑定到计算结果button中。
2.第2个activity的步骤大概如下:
创建一个监听器。
创建一个intent,并从intent中的键值对获得字符串,保存好。
将字符串转换成数字,并相乘。
将相乘结果在textview中显示出来。
3.    加入菜单项需要重写oncreateoptionsmenu()函数,无需在xml布局中添加相应的控件。
4.    相应菜单单击时需要重写onoptionsitemselected()函数。
5. 在android的java文件中导入包的时候,千万要注意区分名字的大小写。
6.  一般在java程序中显示文本时,为了达到程序的国际化,最好不要把文本内容在java中指定,而需要在对应的xml文件中指定,然后在java代码中调用其资源即可.因为这样我们只需更改一个xml文件(当然一般是有多个语言版本的xml文件,然后不同版本的软件调用不同的xml即可)。
7. 内部类在java中比较常见,就是类中嵌入类,这种情况在多线程中应用得比较多。在内部类中可以使用外部类的成员变量,函数和对象等。
8. android控件中的menu控件不需要在xml中给出,直接在java源码中重写一些函数即可。
9. intent不仅可以在同一程序中的2个actibity中进行传递数据,还可以啊不同程序中的activity中进行数据传递。
10. java中将字符串转换成整数的语法是用integer.parseint(string);
11.java运算中只要2者其中有一个为字符型,则会自动将另一个也转换成字符串 .

实验结果:
android实现简单的乘法计算代码


android实现简单的乘法计算代码

实验主要部分代码及注释:
mainactivity.java:

复制代码 代码如下:

package com.example.factor;

import android.app.activity;
import android.content.intent;
import android.os.bundle;
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.textview;

public class mainactivity extends activity {

    private textview factor;
    private edittext factor1;
    private edittext factor2;
    private button result;

    @override
    public void oncreate(bundle savedinstancestate) {
        super.oncreate(savedinstancestate);
        setcontentview(r.layout.activity_main);

        factor = (textview)findviewbyid(r.id.factor);
        factor1 = (edittext)findviewbyid(r.id.factor1);
        factor2 = (edittext)findviewbyid(r.id.factor2);
        result = (button)findviewbyid(r.id.result);
        factor.settext(r.string.factor);
        result.settext(r.string.result);
        //绑定一个监听器到该按钮
        result.setonclicklistener(new onresultclicklistener());
    }

    //该函数其实是一个回调函数,但在系统中按下了menu按钮时会自动调用这个函数
    @override
    public boolean oncreateoptionsmenu(menu menu) {
        //要在返回代码之前加入
        menu.add(0, 1, 1, r.string.exit);
        menu.add(0, 2, 2, r.string.about);
        return super.oncreateoptionsmenu(menu);   
    }

    //菜单项选择函数重写
    @override
    public boolean onoptionsitemselected(menuitem item) {
        if( 1 == item.getitemid() )
   finish();
        return super.onoptionsitemselected(item);
    }


    //创建一个监听器
    class onresultclicklistener implements onclicklistener{

        public void onclick(view v) {
   //获取2个edit输入的数字
   string factor1_str = factor1.gettext().tostring();
   string factor2_str = factor2.gettext().tostring();
   //建立intent,并将数据传入,且激活resultactivity
   intent intent = new intent();
   intent.putextra("factor1", factor1_str);
   intent.putextra("factor2", factor2_str);
   intent.setclass(mainactivity.this, resultactivity.class);
   //启动intent
   mainactivity.this.startactivity(intent);
        }

    }
}



resultactivity.java:
复制代码 代码如下:

package com.example.factor;

import android.app.activity;
import android.content.intent;
import android.os.bundle;
import android.view.menu;
import android.widget.textview;

public class resultactivity extends activity {

    private textview result_dis;
    @override
    public void oncreate(bundle savedinstancestate) {
        super.oncreate(savedinstancestate);
        setcontentview(r.layout.activity_result);

        result_dis = (textview)findviewbyid(r.id.result_view);
        intent intent = getintent();
        string factor_str1 = intent.getstringextra("factor1");
        string factor_str2 = intent.getstringextra("factor2");
        //java中将字符串转换成整数的语法
        int factor_int1 = integer.parseint(factor_str1);
        int factor_int2 = integer.parseint(factor_str2);
        int result = factor_int1 * factor_int2;
        //java运算中只要2者其中有一个为字符型,则会自动将另一个也转换成字符串
        result_dis.settext(result + "");

    }

    @override
    public boolean oncreateoptionsmenu(menu menu) {
        getmenuinflater().inflate(r.menu.activity_result, menu);
        return true;
    }
}


activity_main.xml:

<linearlayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

    <edittext
        android:id="@+id/factor1"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        /> 
    <textview
        android:id="@+id/factor"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />   
    <edittext
        android:id="@+id/factor2"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />
    <button
        android:id="@+id/result"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        />

</linearlayout>



activity_result.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" >

    <textview
        android:id="@+id/result_view"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerhorizontal="true"
        android:layout_centervertical="true"
    ></textview>

</relativelayout>



实验总结:
本次实验对intent的应用有了稍许的了解,体会到了java和c++编程稍许不同的地方。

 

 
作者:tornadomeet