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

开发环境: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者其中有一个为字符型,则会自动将另一个也转换成字符串 .

实验结果:

实验主要部分代码及注释:
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

(0)

相关推荐

  • android计时器,时间计算器的实现方法

    需求:默认为"00:00:00",点击开始按钮时清零后开始计时,出现如10:28:34.点击停止的时候停止计时.问题:使用Calendar DateFormat的方法,不设置时区获取到的小时是本地时区的(东八区的就是8),设置成GMT标准时区获取到的时间是12小时(12:00:00),设置24小时制无效.在开始时间加减各种小时都无效,而且计时只能到12小时就自动跳上去了,始终无法出现默认状态00:00:00开始计时的效果.尝试各种时间设置方法无效后只能自己写一个根据秒数转换时间格式字符

  • 从零开始学android实现计算器功能示例分享(计算器源码)

    下面是效果展示: 复制代码 代码如下: <?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

  • Android依据名字通过反射获取在drawable中的图片

    MainActivity如下: 复制代码 代码如下: package cn.testreflect; import java.lang.reflect.Field; import android.os.Bundle; import android.widget.ImageView; import android.app.Activity; /** * Demo描述: * 依据图片的名字,通过反射获取其在drawable中的ID * 在根据此ID显示图片 */ public class MainA

  • android计算器代码示例分享

    复制代码 代码如下: <?xml version="1.0" encoding="utf-8"?><EditText    android:id="@+id/editText1"    android:layout_width="match_parent"    android:layout_height="wrap_content"    android:ems="10&quo

  • android计算pad或手机的分辨率/像素/密度/屏幕尺寸/DPI值的方法

    手机分辨率基础知识(DPI,DIP计算) 1.术语和概念 术语 说明 备注 Screen size(屏幕尺寸) 指的是手机实际的物理尺寸,比如常用的2.8英寸,3.2英寸,3.5英寸,3.7英寸 摩托罗拉milestone手机是3.7英寸 Aspect Ratio(宽高比率) 指的是实际的物理尺寸宽高比率,分为long和nolong Milestone是16:9,属于long Resolution(分辨率) 和电脑的分辨率概念一样,指手机屏幕纵.横方向像素个数 Milestone是854*480

  • Android获取经纬度计算距离介绍

    经度指示南北方向,纵向纬度指示东西方向,横向 获取经纬度 使用GPS权限: 复制代码 代码如下: <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> Android提供LocationManager和Location,可以方便的获得经纬度.海拔等位置.使用LocationManager来获得位置管理类,从而可以获得历史GPS信息以及位

  • Android计算器编写代码

    其实这个安卓计算机,所有的后台思想与<C#计算器编写代码>是一模一样的.Win窗体程序移植到安卓,从C#到Java其实很简单的,因为两者的基本语法都很相像,唯一的难点是安卓的xml布局部分,不像C#窗体能够直接拖.  还是如下图一个能够完成基本四则运算的计算器: 先在res\values\strings.xml设置按钮相应的字体,以免布局文件警告满天飞: <?xml version="1.0" encoding="utf-8"?> <r

  • Android中通过反射实现圆角ImageView代码实例

    private void init(){ paint = new Paint(Paint.ANTI_ALIAS_FLAG); roundRect = new RectF(0, 0, getWidth() , getHeight()); radius = 40; mPorterDuffXfermode = new PorterDuffXfermode(PorterDuff.Mode.SRC_IN) ; } 继承ImageView,在构造方法中调用,初始化Paint和Xfermode. protec

  • Android通过反射实现强制停止应用程序的方法

    本文实例讲述了Android通过反射实现强制停止应用程序的方法.分享给大家供大家参考,具体如下: private ActivityManager manager; private List<RunningAppProcessInfo> runningProcesses; private String packName; private PackageManager pManager; @Override public void onReceive(Context context, Intent

  • java反射android的r文件的示例

    动态取得R文件的int值,通过string-array name属性动态获取R.array.xxx的int值 复制代码 代码如下: //通过string-array name属性动态获取R.array.xxx的int值public CharSequence[] getListData(String name) {        try {            Class<?> arrayClass = getArrayResource().getClass();            Fie

  • Android基于反射技术实现的加减乘除运算示例

    本文实例讲述了Android基于反射技术实现的加减乘除运算.分享给大家供大家参考,具体如下: JAVA反射机制定义: JAVA反射机制是在运行状态中,对于任意一个类,都能够知道这个类的所有属性和方法:对于任意一个对象,都能够调用它的任意一个方法:这种动态获取的信息以及动态调用对象的方法的功能称为java语言的反射机制. Java反射机制主要提供了以下功能: 在运行时判断任意一个对象所属的类:在运行时构造任意一个类的对象:在运行时判断任意一个类所具有的成员变量和方法:在运行时调用任意一个对象的方法

  • 详解Java编程中的反射在Android开发中的应用

    反射定义 "反射"(Reflection)能够让运行于JVM中的程序检测和修改运行时的行为. 为何需要反射 反射带来的好处包括: 在运行时检测对象的类型. 动态构造某个类的对象. 检测类的属性和方法. 任意调用对象的方法. 修改构造函数.方法.属性的可见性. 反射方法Method getDeclaredMethod方法 声明如下: public Method getDeclaredMethod(String name, Class<?>... parameterTypes)

随机推荐