1. 程式人生 > >Androidstudio實現一個簡易的加法器——分享兩種方法實現(日常作業練習)

Androidstudio實現一個簡易的加法器——分享兩種方法實現(日常作業練習)

 

Androidstudio實現一個簡易的加法器——分享兩種方法實現(日常作業練習)

 

                                                                                                       ————安德風

 

 

一、作業題目要求:

 

 

二、實現題目第一問(等號通過按鈕實現【button】)

 1、前期需要在activity_main.xml檔案設計佈局

 

 

 最終佈局效果圖

 

 

2、控制元件準備:

需要2個EditText控制元件(兩個輸入文字框):EditText1(用來作為加法1)、EditText2(用來作為加法2)

2個TextView控制元件: TextView1(用作“+”),TextView2(用作輸出求和)

1個Button控制元件:Button1(用作“=”,用來點選等於時,TextView2作為輸出和的結果)

 

PS:以上控制元件要求是用來作為佈局使用,在MainActivity.java 檔案中實現功能部分只用到:
EditText1(用來作為加法1)=》更改ID為et1、EditText2(用來作為加法2)=》更改ID為et2

Button1(用作“=”,用來點選等於時,TextView2作為輸出和的結果)=>更改ID為bt

TextView2(用作輸出求和)=》更改ID為tv

 更改ID名可以自定義,要求規範更改控制元件ID名要求見明知意,還有控制元件ID最好與MainActivity.java 檔案中宣告變數一致便於修改。

 

3、activity_main.xml介面佈局原始碼:

 

 1 <?xml version="1.0" encoding="utf-8"?>
 2 <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
 3     xmlns:app="http://schemas.android.com/apk/res-auto"
 4     xmlns:tools="http://schemas.android.com/tools"
 5     android:layout_width="match_parent"
 6     android:layout_height="match_parent"
 7     tools:context=".MainActivity">
 8 
 9     <EditText
10         android:id="@+id/et1"
11         android:layout_width="60dp"
12         android:layout_height="45dp"
13         android:layout_marginStart="76dp"
14         android:layout_marginLeft="76dp"
15         android:layout_marginTop="140dp"
16         android:background="@drawable/border"
17         android:ems="10"
18         android:hint="加法1"
19         android:inputType="textShortMessage|numberSigned"
20         app:layout_constraintStart_toStartOf="parent"
21         app:layout_constraintTop_toTopOf="parent" />
22 
23     <TextView
24         android:id="@+id/tv"
25         android:layout_width="80dp"
26         android:layout_height="60dp"
27         android:layout_marginTop="132dp"
28         android:background="@drawable/border"
29         android:gravity="center"
30         android:hint="和"
31         android:textSize="24sp"
32         app:layout_constraintStart_toEndOf="@+id/bt"
33         app:layout_constraintTop_toTopOf="parent" />
34 
35     <TextView
36         android:id="@+id/textView"
37         android:layout_width="wrap_content"
38         android:layout_height="wrap_content"
39         android:layout_marginTop="140dp"
40         android:text="+"
41         android:background="@drawable/border"
42         android:textSize="24sp"
43         app:layout_constraintStart_toEndOf="@+id/et1"
44         app:layout_constraintTop_toTopOf="parent" />
45 
46     <EditText
47         android:id="@+id/et2"
48         android:layout_width="60dp"
49         android:layout_height="45dp"
50         android:layout_marginTop="140dp"
51         android:background="@drawable/border"
52         android:ems="10"
53         android:hint="加法2"
54         android:inputType="numberSigned|textPersonName"
55         app:layout_constraintStart_toEndOf="@+id/textView"
56         app:layout_constraintTop_toTopOf="parent" />
57 
58     <Button
59         android:id="@+id/bt"
60         android:layout_width="50dp"
61         android:layout_height="60dp"
62         android:layout_marginTop="132dp"
63         android:text="="
64         android:textSize="24sp"
65         app:layout_constraintStart_toEndOf="@+id/et2"
66         app:layout_constraintTop_toTopOf="parent" />
67 
68 </androidx.constraintlayout.widget.ConstraintLayout>

 

4、實現功能MainActivity.java原始碼

 1 package com.example.computer;
 2 
 3 import androidx.appcompat.app.AppCompatActivity;
 4 
 5 import android.os.Bundle;
 6 import android.view.KeyEvent;
 7 import android.view.View;
 8 import android.widget.Button;
 9 import android.widget.EditText;
10 import android.widget.TextView;
11 
12 public class MainActivity extends AppCompatActivity implements View.OnClickListener {
13 
14     EditText et1;//宣告加法1輸入文字框變數為et1(與控制元件ID一致)
15     EditText et2;//宣告加法2輸入文字框變數為et2(與控制元件ID一致)
16     TextView tv;//宣告和普通文字框變數為tv(與控制元件ID一致)
17     Button bt;//宣告等於按鈕控制元件變數為bt(與控制元件ID一致)
18     int sum;//定義一個sum自定義變數方便後面方法求和存放求和的值
19 
20     @Override
21     protected void onCreate(Bundle savedInstanceState) {
22         super.onCreate(savedInstanceState);
23         setContentView(R.layout.activity_main);
24 
25         et1 = findViewById(R.id.et1);//尋找加法1輸入文字框ID
26         et2 = findViewById(R.id.et2);//尋找加法2輸入文字框ID
27         tv = findViewById(R.id.tv);//尋找和普通文字框ID
28         bt=findViewById(R.id.bt);//尋找等於號普通按鈕ID
29         bt.setOnClickListener(this);//給等於號普通按鈕安裝一個監聽器,便於點選等於號按鈕,和就能求出
30 
31 
32     }
33 //String => int =>String
34     @Override
35     public void onClick(View v) {
36     String j1=et1.getText().toString();//通過et1ID(加法1輸入文字框)得到文字內容(資料型別為字串型)賦值給j1(也就是說j1代表加法1,可以理解為是它的小名)
37     String j2=et2.getText().toString();//通過et2ID(加法2輸入文字框)得到文字內容(資料型別為字串型)賦值給j2(也就是說j2代表加法2,可以理解為是它的小名)
38     int num1=Integer.valueOf(j1).intValue();//將j1字串型別強制轉換為int型別
39     int num2=Integer.valueOf(j2).intValue();//將j2字串型別強制轉換為int型別
40     sum=num1+num2;//開始運算加法1+ 加法2=和(sum代表和的變數)
41     j1=String.valueOf(sum);//再將sum(和),由int型別轉換為string型便於,setText()輸出(只能輸出字串型別),賦值給j1或者j2幫忙代理儲存資料
42    tv.setText(j1);//由於setText(只能輸出字串型別)所以通過j1(加法1或者j2加法2)代理幫忙儲存來輸出和的值
43 
60 
61     }
62 }

5、實現文字邊框border.xml原始碼:

 

 1 <selector xmlns:android="http://schemas.android.com/apk/res/android">
 2     <item android:state_pressed="true" >
 3         <shape>
 4             <solid
 5                 android:color="#449def" />
 6             <stroke
 7                 android:width="1dp"
 8                 android:color="#2f6699" />
 9             <corners
10                 android:radius="0dp" />
11             <padding
12                 android:left="5dp"
13                 android:top="5dp"
14                 android:right="5dp"
15                 android:bottom="5dp" />
16         </shape>
17     </item>
18     <item>
19         <shape>
20             <gradient
21                 android:startColor="#ffffff"
22                 android:endColor="#ffffff"
23                 android:angle="270" />
24             <stroke
25                 android:width="1dp"
26                 android:color="#2f6699" />
27             <corners
28                 android:radius="0dp" />
29             <padding
30                 android:left="5dp"
31                 android:top="5dp"
32                 android:right="5dp"
33                 android:bottom="5dp" />
34         </shape>
35     </item>
36 </selector>

 

 6、最終在模擬器除錯程式碼效果圖:

 

 

 

 

三、實現題目思考題第二問(等號通過普通文字框實現【TextView】)

 

 

 

 

 

&n