简单的安卓小例子输入矩形长宽或圆半径计算其面积

来源:互联网 发布:caxa编程助手 编辑:程序博客网 时间:2024/05/15 11:02

前言

实现简单的安卓应用,输入矩形的长和宽或圆的半径得到他们的面积。要求输入框只能输入数字,输出框不可被编辑。逻辑很简单,主要是自己老会忘掉一些性质。好,接下来贴代码

正文

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:orientation="vertical"    android:layout_width="match_parent"    android:layout_height="match_parent">    <LinearLayout        android:orientation="horizontal"        android:layout_width="match_parent"        android:layout_height="wrap_content">        <EditText            android:id="@+id/length"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:digits="1234567890."            android:inputType="number"            android:hint="输入长度"/>        <EditText            android:id="@+id/width"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:digits="1234567890."            android:inputType="number"            android:hint="输入宽度"/>        <!-- inputType="number"输入时弹出数字键盘.             digits="1234567890."限制输入为数字及.             numeric="integer"也是限制为整数,但已被废弃.            layout_width="0dp",layout_weight="1"表示宽度在所有weight里面占的份额为1份,如当前流布局有两份,各为一半,即布局宽度各占一半.             -->    </LinearLayout>    <LinearLayout        android:orientation="horizontal"        android:layout_width="match_parent"        android:layout_height="wrap_content">        <Button            android:id="@+id/calculateRectArea"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="计算矩形面积"            />        <EditText            android:id="@+id/rectArea"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:enabled="false"            android:hint="矩形面积"/>        <!-- enable="false"表示不可编辑-->    </LinearLayout>    <LinearLayout        android:orientation="horizontal"        android:layout_width="match_parent"        android:layout_height="wrap_content">        <Button            android:id="@+id/calculateCircleArea"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:text="计算圆面积"            />        <EditText            android:id="@+id/radius"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:digits="1234567890."            android:inputType="number"            android:hint="输入圆的半径"/>    </LinearLayout>    <LinearLayout        android:orientation="horizontal"        android:layout_width="match_parent"        android:layout_height="wrap_content">        <EditText            android:id="@+id/circleArea"            android:layout_width="0dp"            android:layout_height="wrap_content"            android:layout_weight="1"            android:enabled="false"            android:hint="圆面积"/>    </LinearLayout></LinearLayout>

MainActivity.java

package com.example.test_1_circle;import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.text.TextUtils;import android.view.View;import android.widget.Button;import android.widget.EditText;import android.widget.Toast;public class MainActivity extends AppCompatActivity implements View.OnClickListener{    private static final String TAG = "MainActivity";    private EditText length;    private EditText width;    private EditText rectArea;    private EditText radius;    private EditText circleArea;    private Button calculateRectArea;    private Button calculateCircleArea;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        length = (EditText) findViewById(R.id.length);        width = (EditText) findViewById(R.id.width);        rectArea = (EditText) findViewById(R.id.rectArea);        radius = (EditText) findViewById(R.id.radius);        circleArea = (EditText) findViewById(R.id.circleArea);        calculateRectArea = (Button) findViewById(R.id.calculateRectArea);        calculateCircleArea = (Button) findViewById(R.id.calculateCircleArea);        calculateRectArea.setOnClickListener(this);        calculateCircleArea.setOnClickListener(this);    }    @Override    public void onClick(View view) {        switch (view.getId()){            case R.id.calculateRectArea:                try{//                    判断输入合法给出合理提示TextUtils.isEmpty(CharSequence str)当输入为空返回true                    if(TextUtils.isEmpty(length.getText())){                        Toast.makeText(getApplicationContext(),                                "The length is Empty!",Toast.LENGTH_SHORT).show();                    }else if(TextUtils.isEmpty(width.getText())){                        Toast.makeText(getApplicationContext(),                                "The width is Empty!",Toast.LENGTH_SHORT).show();                    }else {                        float localLength = Float.parseFloat(length.getText().toString());                        float localWidth = Float.parseFloat(width.getText().toString());                        float localRectArea = localLength * localWidth;                        rectArea.setText(String.valueOf(localRectArea));                    }                }catch (Exception e){                    Toast.makeText(getApplicationContext(),                            "Wrong Data!",Toast.LENGTH_SHORT).show();                    e.printStackTrace();                }                break;            case R.id.calculateCircleArea:                try{                    if(TextUtils.isEmpty(radius.getText())){                        Toast.makeText(getApplicationContext(),                                "The radius is Empty!",Toast.LENGTH_SHORT).show();                    }else {                        float localRadius = Float.parseFloat(radius.getText().toString());                        double localCircleArea = Math.PI * localRadius *localRadius;                        circleArea.setText(String.valueOf(localCircleArea));                    }                }catch (Exception e){                    Toast.makeText(getApplicationContext(),                            "Wrong Data!",Toast.LENGTH_SHORT).show();                    e.printStackTrace();                }                break;            default:                break;        }    }}

注释才是精华(皮毛)haha

TextUtils.isEmpty(CharSequence str)当输入为空返回trueEditText     android:enable="false"表示不可编辑    inputType="number"输入时弹出数字键盘.    digits="1234567890."限制输入为数字及.    numeric="integer"也是限制为整数,但已被废弃.    layout_width="0dp",layout_weight="1"表示宽度在所有weight里面占的份额为1份,如当前流布局有两份,各为一半,即布局宽度各占一半.

效果图:
这里写图片描述

这里写图片描述
我靠,这图片显示在屏幕上这么大,凑合着看。路过别嘲讽,我只是个刚入门的菜鸟,谢谢!
懒得打这几行代码的可以下我Github上的源码,有什么好的想法记得互相指教,微笑。https://github.com/jianhaojiang/TestDemo

阅读全文
0 0
原创粉丝点击