热门标签 | HotTags
当前位置:  开发笔记 > Android > 正文

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

本文完成输入2个数相乘,并显示其结果。共涉及到4个控件的使用学习,输入数字采用EditText,显示结果用TextView,运算按钮button以及菜单中的退出键

开发环境: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:

    android:layout_
    android:layout_
    android:orientation="vertical" >

            android:id="@+id/factor1"
        android:layout_
        android:layout_
        /> 
            android:id="@+id/factor"
        android:layout_
        android:layout_
        />   
            android:id="@+id/factor2"
        android:layout_
        android:layout_
        />
            android:id="@+id/result"
        android:layout_
        android:layout_
        />




activity_result.xml:
代码如下:

    xmlns:tools="http://schemas.android.com/tools"
    android:layout_
    android:layout_ >

            android:id="@+id/result_view"
        android:layout_
        android:layout_
        android:layout_centerHorizOntal="true"
        android:layout_centerVertical="true"
    >




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

 

 
作者:tornadomeet


推荐阅读
  • Android 九宫格布局详解及实现:人人网应用示例
    本文深入探讨了人人网Android应用中独特的九宫格布局设计,解析其背后的GridView实现原理,并提供详细的代码示例。这种布局方式不仅美观大方,而且在现代Android应用中较为少见,值得开发者借鉴。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • Android LED 数字字体的应用与实现
    本文介绍了一种适用于 Android 应用的 LED 数字字体(digital font),并详细描述了其在 UI 设计中的应用场景及其实现方法。这种字体常用于视频、广告倒计时等场景,能够增强视觉效果。 ... [详细]
  • RecyclerView初步学习(一)
    RecyclerView初步学习(一)ReCyclerView提供了一种插件式的编程模式,除了提供ViewHolder缓存模式,还可以自定义动画,分割符,布局样式,相比于传统的ListVi ... [详细]
  • QUIC协议:快速UDP互联网连接
    QUIC(Quick UDP Internet Connections)是谷歌开发的一种旨在提高网络性能和安全性的传输层协议。它基于UDP,并结合了TLS级别的安全性,提供了更高效、更可靠的互联网通信方式。 ... [详细]
  • 本文探讨了 RESTful API 和传统接口之间的关键差异,解释了为什么 RESTful API 在设计和实现上具有独特的优势。 ... [详细]
  • 本文详细介绍了Java编程语言中的核心概念和常见面试问题,包括集合类、数据结构、线程处理、Java虚拟机(JVM)、HTTP协议以及Git操作等方面的内容。通过深入分析每个主题,帮助读者更好地理解Java的关键特性和最佳实践。 ... [详细]
  • Python自动化处理:从Word文档提取内容并生成带水印的PDF
    本文介绍如何利用Python实现从特定网站下载Word文档,去除水印并添加自定义水印,最终将文档转换为PDF格式。该方法适用于批量处理和自动化需求。 ... [详细]
  • 在当前众多持久层框架中,MyBatis(前身为iBatis)凭借其轻量级、易用性和对SQL的直接支持,成为许多开发者的首选。本文将详细探讨MyBatis的核心概念、设计理念及其优势。 ... [详细]
  • 将Web服务部署到Tomcat
    本文介绍了如何在JDeveloper 12c中创建一个Java项目,并将其打包为Web服务,然后部署到Tomcat服务器。内容涵盖从项目创建、编写Web服务代码、配置相关XML文件到最终的本地部署和验证。 ... [详细]
  • XNA 3.0 游戏编程:从 XML 文件加载数据
    本文介绍如何在 XNA 3.0 游戏项目中从 XML 文件加载数据。我们将探讨如何将 XML 数据序列化为二进制文件,并通过内容管道加载到游戏中。此外,还会涉及自定义类型读取器和写入器的实现。 ... [详细]
  • 本文介绍如何在 Unity 的 XML 配置文件中,将参数传递给自定义生命周期管理器的构造函数。我们将详细探讨 CustomLifetimeManager 类的实现及其配置方法。 ... [详细]
  • 本文详细介绍了 Java 中 org.apache.xmlbeans.SchemaType 类的 getBaseEnumType() 方法,提供了多个代码示例,并解释了其在不同场景下的使用方法。 ... [详细]
  • 本文详细介绍了如何解决MyBatis中常见的BindingException错误,提供了多种排查和修复方法,确保Mapper接口与XML文件的正确配置。 ... [详细]
  • 基于KVM的SRIOV直通配置及性能测试
    SRIOV介绍、VF直通配置,以及包转发率性能测试小慢哥的原创文章,欢迎转载目录?1.SRIOV介绍?2.环境说明?3.开启SRIOV?4.生成VF?5.VF ... [详细]
author-avatar
金爽20111018
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有