`

android打造的最简单计算器界面

阅读更多
先看图:

这里主要是锻炼一下TableLayout布局,注意其中的android:stretchColumns="0,1,2,3"属性,该属性可以控制每列的宽的权重,类似weight,由于这里4列都是“平等的”,所以是“0,1,2,3”,全部布局文件如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation="vertical"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    >

    <EditText 
    android:id="@+id/result" 
	android:layout_width="fill_parent" 
	android:layout_height="wrap_content"
	android:text=""
	android:singleLine="true"
	android:numeric="decimal"
	android:focusable="false"
	android:digits="1234567890."
	android:cursorVisible="false"
	/>
	<TableLayout 
	android:layout_width="fill_parent" 
	android:layout_height="wrap_content"
	android:stretchColumns="0,1,2,3">
		<TableRow>
			<Button android:id="@+id/btn_1" android:text="1"/>
			<Button android:id="@+id/btn_2" android:text="2" />
			<Button android:id="@+id/btn_3" android:text="3" />
			<Button android:id="@+id/btn_add" android:text="+" />
		</TableRow>
		<TableRow>
			<Button android:id="@+id/btn_4" android:text="4" />
			<Button android:id="@+id/btn_5" android:text="5" />
			<Button android:id="@+id/btn_6" android:text="6" />
			<Button android:id="@+id/btn_sub" android:text="-" />
		</TableRow>
		<TableRow>
			<Button android:id="@+id/btn_7" android:text="7" />
			<Button android:id="@+id/btn_8" android:text="8" />
			<Button android:id="@+id/btn_9" android:text="9" />
			<Button android:id="@+id/btn_mul" android:text="*" />
		</TableRow>
		<TableRow>
			<Button android:id="@+id/btn_dot" android:text="." />
			<Button android:id="@+id/btn_0" android:text="0" />
			<Button android:id="@+id/btn_eq" android:text="=" />
			<Button android:id="@+id/btn_div" android:text="/" />
		</TableRow>
	</TableLayout>
	<Button 
	android:id="@+id/btn_clear" 
	android:layout_width="fill_parent" 
	android:layout_height="wrap_content"
	android:text="clear"
	/>
</LinearLayout>

java源码如下,这代码我承认写的不好,主要是数字键button没有使用数组的形式,这样很拖沓,将就着看吧!
package com.wt.app;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;

public class App extends Activity {
	
	EditText editText;
	StringBuffer text;
	String number_1="",number_2="";
	boolean clicked=false;
	byte style=0;
	Button btn_1,btn_2,btn_3,btn_4,btn_5,btn_6,btn_7,btn_8,btn_9,btn_0;
	Button btn_add,btn_sub,btn_mul,btn_div,btn_eq,btn_dot,btn_clear;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        text=new StringBuffer();
        editText=(EditText)findViewById(R.id.result);
        //editText.setFocusable(false);
        btn_1=(Button) findViewById(R.id.btn_1);
        btn_1.setOnClickListener(new Button.OnClickListener(){

			public void onClick(View v) {
				// TODO Auto-generated method stub
				if(clicked){
					editText.setText("");
					clicked=false;
					text.setLength(0);
				}
				text.append("1");
				editText.setText(text.toString());
				
			}
        	
        });
        btn_2=(Button) findViewById(R.id.btn_2);
        btn_2.setOnClickListener(new Button.OnClickListener(){
        	
        	public void onClick(View v) {
        		// TODO Auto-generated method stub
        		if(clicked){
					editText.setText("");
					clicked=false;
					text.setLength(0);
				}
        		text.append("2");
        		editText.setText(text.toString());
        	}
        	
        });
        btn_3=(Button) findViewById(R.id.btn_3);
        btn_3.setOnClickListener(new Button.OnClickListener(){
        	
        	public void onClick(View v) {
        		// TODO Auto-generated method stub
        		if(clicked){
					editText.setText("");
					clicked=false;
					text.setLength(0);
				}
        		text.append("3");
        		editText.setText(text.toString());
        	}
        	
        });
        btn_4=(Button) findViewById(R.id.btn_4);
        btn_4.setOnClickListener(new Button.OnClickListener(){
        	
        	public void onClick(View v) {
        		// TODO Auto-generated method stub
        		if(clicked){
					editText.setText("");
					clicked=false;
					text.setLength(0);
				}
        		text.append("4");
        		editText.setText(text.toString());
        	}
        	
        });
        btn_5=(Button) findViewById(R.id.btn_5);
        btn_5.setOnClickListener(new Button.OnClickListener(){
        	
        	public void onClick(View v) {
        		// TODO Auto-generated method stub
        		if(clicked){
					editText.setText("");
					clicked=false;
					text.setLength(0);
				}
        		text.append("5");
        		editText.setText(text.toString());
        	}
        	
        });
        btn_6=(Button) findViewById(R.id.btn_6);
        btn_6.setOnClickListener(new Button.OnClickListener(){
        	
        	public void onClick(View v) {
        		// TODO Auto-generated method stub
        		if(clicked){
					editText.setText("");
					clicked=false;
					text.setLength(0);
				}
        		text.append("6");
        		editText.setText(text.toString());
        	}
        	
        });
        btn_7=(Button) findViewById(R.id.btn_7);
        btn_7.setOnClickListener(new Button.OnClickListener(){
        	
        	public void onClick(View v) {
        		// TODO Auto-generated method stub
        		if(clicked){
					editText.setText("");
					clicked=false;
					text.setLength(0);
				}
        		text.append("7");
        		editText.setText(text.toString());
        	}
        	
        });
        btn_8=(Button) findViewById(R.id.btn_8);
        btn_8.setOnClickListener(new Button.OnClickListener(){
        	
        	public void onClick(View v) {
        		// TODO Auto-generated method stub
        		if(clicked){
					editText.setText("");
					clicked=false;
					text.setLength(0);
				}
        		text.append("8");
        		editText.setText(text.toString());
        	}
        	
        });
        btn_9=(Button) findViewById(R.id.btn_9);
        btn_9.setOnClickListener(new Button.OnClickListener(){
        	
        	public void onClick(View v) {
        		// TODO Auto-generated method stub
        		if(clicked){
					editText.setText("");
					clicked=false;
					text.setLength(0);
				}
        		text.append("9");
        		editText.setText(text.toString());
        	}
        	
        });
        btn_0=(Button) findViewById(R.id.btn_0);
        btn_0.setOnClickListener(new Button.OnClickListener(){
        	
        	public void onClick(View v) {
        		// TODO Auto-generated method stub
        		if(clicked){
					editText.setText("");
					clicked=false;
					text.setLength(0);
				}
        		text.append("0");
        		editText.setText(text.toString());
        	}
        	
        });
        btn_dot=(Button) findViewById(R.id.btn_dot);
        btn_dot.setOnClickListener(new Button.OnClickListener(){
        	
        	public void onClick(View v) {
        		// TODO Auto-generated method stub
        		if(clicked){
					editText.setText("");
					clicked=false;
					text.setLength(0);
				}
        		if(editText.getText().toString().indexOf(".")==-1){//已经有.了
        			if(text.length()==0){
        				text.append("0.");
        			}else{
        				text.append(".");
        			}
        			editText.setText(text.toString());
        		}
        	}
        	
        });
        
        btn_add=(Button) findViewById(R.id.btn_add);
        btn_add.setOnClickListener(new Button.OnClickListener(){
        	
        	public void onClick(View v) {
        		// TODO Auto-generated method stub
        		number_1=editText.getText().toString();
        		style=1;
        		clicked=true;
        	}
        	
        });
        btn_sub=(Button) findViewById(R.id.btn_sub);
        btn_sub.setOnClickListener(new Button.OnClickListener(){
        	
        	public void onClick(View v) {
        		// TODO Auto-generated method stub
        		number_1=editText.getText().toString();
        		style=2;
        		clicked=true;
        	}
        	
        });
        btn_mul=(Button) findViewById(R.id.btn_mul);
        btn_mul.setOnClickListener(new Button.OnClickListener(){
        	
        	public void onClick(View v) {
        		// TODO Auto-generated method stub
        		number_1=editText.getText().toString();
        		style=3;
        		clicked=true;
        	}
        	
        });
        btn_div=(Button) findViewById(R.id.btn_div);
        btn_div.setOnClickListener(new Button.OnClickListener(){
        	
        	public void onClick(View v) {
        		// TODO Auto-generated method stub
        		number_1=editText.getText().toString();
        		style=4;
        		clicked=true;
        	}
        	
        });
        btn_eq=(Button) findViewById(R.id.btn_eq);
        btn_eq.setOnClickListener(new Button.OnClickListener(){
        	
        	public void onClick(View v) {
        		// TODO Auto-generated method stub
        		number_2=editText.getText().toString();
        		if(number_1.equals("")&&number_2.equals("")){
        			return;
        		}
        		Double d1=Double.valueOf(number_1);
        		Double d2=Double.valueOf(number_2);
        		Double r=0.0;;
        		switch (style) {
				case 1:
					r=d1+d2;
					break;
				case 2:
					r=d1-d2;
					break;
				case 3:
					r=d1*d2;
					break;
				case 4:
					r=d1/d2;
					break;
				}
        		editText.setText(r.toString());
        	}
        	
        });
        btn_clear=(Button) findViewById(R.id.btn_clear);
        btn_clear.setOnClickListener(new Button.OnClickListener(){
        	
        	public void onClick(View v) {
        		// TODO Auto-generated method stub
        		editText.setText("");
        		number_1="";
        		number_2="";
        		style=0;
        		clicked=false;
        		text.setLength(0);
        	}
        	
        });
    }
    
}


Android——Tabel布局,计算器的实现
http://blog.csdn.net/zhanghaidang/archive/2011/04/27/6366771.aspx
  • 大小: 21.9 KB
分享到:
评论

相关推荐

    Android开发的简易计算器

    这个项目不仅涵盖了基础的Android编程概念,还展示了如何实现用户界面(UI)以及处理用户输入。让我们详细了解一下这个“Android开发的简易计算器”项目所涉及的知识点。 首先,Android开发的核心是Java或Kotlin...

    Android制作简单计算器

    以上就是创建一个Android简单计算器应用的主要步骤和涉及的技术点。通过这个项目,开发者不仅可以掌握Android的基本开发流程,还能加深对Android组件和用户交互的理解。在实践中,还可以进一步优化用户体验,比如...

    Android开发_简单计算器代码

    在Android开发中,创建一个简单的计算器应用是一项常见的实践任务,对于初学者来说是很好的学习项目。这个项目基于“mars老师”的视频教程进行了扩展,具备基本的加、减、乘、除运算功能。以下是对这个计算器代码...

    Android整数乘法计算器(帮助理解Intent)

    在这个名为"Android整数乘法计算器"的学习项目中,我们将专注于如何使用Intent来理解Activity的基本交互。 首先,Activity是Android应用中的基本单元,它代表了用户界面的一个屏幕。当用户与手机屏幕上的按钮、...

    android eclipse 编写的简易计算器

    本项目是一个基于Eclipse的简单计算器应用,它展示了如何在Android环境中创建用户界面和实现基本的计算逻辑。 首先,我们要理解Android应用的基本架构。一个Android应用通常由多个组件构成,如Activity、Service、...

    android简单的计算器

    【Android简单的计算器】 在Android平台上开发一个简单的计算器应用,涉及到的知识点主要涵盖以下几个方面: 1. **Android基础知识**:首先,你需要对Android的基本架构、组件和生命周期有清晰的理解。这包括...

    Android 自己写的简单计算器

    总的来说,这个"Android 自己写的简单计算器"项目涵盖了Android应用开发的基础,包括UI设计、事件处理、自定义逻辑等多个方面,是学习Android开发的良好起点。通过实践这个项目,你将对Android应用的开发流程有更...

    android studio计算器实现代码

    下面将详细讲解如何利用Android Studio来创建一个简单的计算器。 首先,我们需要创建一个新的Android项目。打开Android Studio,选择"Start a new Android Studio project",在向导中设置项目的名称(例如...

    Android开发的加法计算器

    总的来说,开发一个简单的Android加法计算器涵盖了Android应用开发的基础知识,包括使用Android Studio创建项目、设计布局、处理用户交互、编写计算逻辑以及调试应用。这些技能是进一步深入Android开发的基础。随着...

    android简单计算器代码

    在Android平台上开发一个简单的计算器应用是一项基础而实用的任务,它能帮助我们理解Android应用程序的基本架构、UI设计以及事件处理机制。下面将详细讲解这个过程,包括主要涉及的技术点和步骤。 首先,Android...

    Android简易计算器程序

    在Android平台上,开发一个简易的计算器程序是许多初学者入门的首选项目,因为这涉及到基本的用户界面构建和逻辑处理。在这个程序中,我们主要利用了Android的两大核心组件:Activity和Intent,来实现功能。 首先,...

    Android 简单的计算器

    在Android平台上开发一个简单的计算器应用是一项基础而实用的任务,它能帮助我们理解Android应用程序的基本架构、用户界面设计以及事件处理机制。在这个项目中,我们将深入探讨如何使用Eclipse IDE来创建一个基本的...

    Android开发之简易计算器 源码

    在Android开发中,数据持久化也是一个关键概念,但在这个简单的计算器应用中,由于没有保存历史记录或用户设置的需求,我们可能看不到这方面的代码。 此外,为了使应用运行在不同的设备上,开发者需要考虑适配问题...

    android线性布局之计算器的界面实现借鉴.pdf

    在本示例中,我们将讨论如何使用线性布局来实现一个简单的计算器界面。这个计算器界面包含一个输入框和多个按钮,这些元素通过线性布局组织,形成清晰的网格结构。 首先,XML文件的开头声明了编码格式为UTF-8,并...

    Android可编程计算器

    《Android可编程计算器详解》 在移动设备领域,Android操作系统以其开源、自由度高和丰富的应用生态而广受开发者和用户喜爱。其中,一个有趣的项目是构建一款“Android可编程计算器”。这款计算器不仅具备基本的四...

    Android Studio实现简易计算器(表格布局TableLayout)

    今天,我们将详细介绍如何使用 Android Studio 实现一个简易计算器,使用表格布局 TableLayout 实现用户界面。 Android Studio 简介 Android Studio 是 Google 官方推出的 Android 应用程序开发环境,于 2013 年...

    Android 简单代码实现的Android 计算器源码.zip

    在Android平台上,构建一个计算器应用是一项基础且重要的任务,它能帮助开发者理解用户界面的创建、事件处理以及基本的计算逻辑。本项目“Android简单代码实现的Android计算器源码”提供了一个实现这一功能的示例,...

    计算器(android)

    开发者需要使用Android Studio提供的布局工具来设计计算器的界面,包括按钮、显示区域等组件。按钮的点击事件需要与计算逻辑关联,使得用户输入的每个数字和运算符都能正确触发相应的操作。 此外,还需要考虑错误...

    Android简单计算器计算机项目

    【Android简单计算器计算机项目】 该项目是一个基于Android平台的简易计算器应用,旨在帮助用户进行基本的数学运算,包括加、减、乘、除等操作。它为开发者提供了学习Android应用程序开发和用户界面设计的良好实践...

Global site tag (gtag.js) - Google Analytics