咖啡小應用

前言

該篇文章是我學習 L2-2A 課程后的筆記,純屬個人的一派胡言,如有異議,你來打我呀!

1.UI 界面分析

一言不合先上圖

android.gif
  • 現(xiàn)在我們來分析上圖需要哪些控件顯示在界面中?
    從整體看:當前頁面有 7 個控件,由 4 個 TextView 和 3 個Button 組成,其中顯示 "QUANTITY" 和 "PRICE" 的兩個 TextView 是不變的,剩下的兩個 TextView 是可變的,所以要給剩下的兩個 TextView 加上 ID ,這樣就可以在代碼中獲取它們,從而改變的它們的值。(圖中所有的 TextView 你可以根據(jù)自己的愛好為它們加上顏色、大小、字體等,在這里我就不詳細的說明了)
    圖中的 3 個 Button 都具有點擊事件,所以我要把 android:onClick 屬性都加個它們,其中 "+" 和 "-" 的 Button 是正方形,所以我就個它們的寬和高都設為 48dp;

  • 怎么把控件按照圖中那樣顯示在 UI 界面中?
    從圖中可以分析得:圖中大部分的控件都是從上到下順序分布的(除了顯示 "+" 與 "-" 的 Button 和顯示數(shù)量的 TextView 是從左到右的順序分布的,在這里我們可以把它們看做一個整體),所以根布局我就選擇 LinearLayout,方向為 vertical,根布局選擇好了,我們再來看怎么顯示 "+" 與 "-" 的 Button 和顯示數(shù)量的 TextView 的布局,在這里我選擇布局嵌套,為它們 3 個控件再添加一個 LinearLayout 布局來包裹它們,方向為 horizontal,到此為止布局已經(jīng)基本 OK 。
    下面是布局文件的代碼:

<?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_parent"
    android:layout_margin="10dp"
    android:orientation="vertical">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="8dp"
        android:text="QUANTITY"
        android:textSize="16sp"/>

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal">
        
        <Button
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:text="-"
            android:onClick="btnLess"/>

        <TextView
            android:id="@+id/tv_number"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_marginLeft="8dp"
            android:layout_marginRight="8dp"
            android:text="0"
            android:textColor="#000000"
            android:textSize="16sp"/>

        <Button
            android:layout_width="48dp"
            android:layout_height="48dp"
            android:text="+"
            android:onClick="btnPlus"/>

    </LinearLayout>

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="PRICE"
        android:textSize="16sp"/>

    <TextView
        android:id="@+id/tv_money"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="16dp"
        android:text="$0"
        android:textColor="#000000"
        android:textSize="16sp"/>

    <Button
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginTop="8dp"
        android:onClick="btnOrder"
        android:text="ORDER"/>

</LinearLayout>

2.功能需求分析

從圖中我們可以看出, "+" 和 "-" 按鈕的功能是增加一杯咖啡或減少一杯咖啡,然后每次點擊 "+" 和 "-" 按鈕,顯示杯子數(shù)量的 TextView 就會相應的增加或者減少,并且杯子的數(shù)量不能小于 0。

當我們選擇咖啡的數(shù)量后,再點擊 "ORDER" 按鈕結算金額(在這里 一杯咖啡等于 5 塊錢),然后顯示金額的 TextView 就會根據(jù)相應的規(guī)則計算出咖啡的價格并顯示出來。

Talk is cheap , Show me the code

package com.vole.coffeeshop;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;

import java.text.NumberFormat;

public class MainActivity extends AppCompatActivity {
    private int number = 0;
    private TextView tvNumber;
    private TextView tvMoney;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        tvNumber = (TextView) findViewById(R.id.tv_number);
        tvMoney = (TextView) findViewById(R.id.tv_money);
    }

    public void btnOrder(View view) {
        setMoney(number * 5);
    }

     //顯示杯子的數(shù)量
    public void setNumber(int number) {
        tvNumber.setText("" + number);
    }

    public void setMoney(int money) {
         /*返回一個貨幣格式為當前默認語言環(huán)境。*/
        tvMoney.setText(NumberFormat.getCurrencyInstance().format(money));
    }

    //加
    public void btnPlus(View view) {
        number += 1;
        setNumber(number);
    }

    //減
    public void btnLess(View view) {
        if (number == 0) {
            return;
        }
        number -= 1;
        setNumber(number);
    }
}

3.總結

到此為止,關于點咖啡小應用就完成了,由于本人的才疏學淺和自身的代碼風格,在上面的代碼中會加入個人的意志,如有錯誤請指出!

最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 178,873評論 25 709
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,316評論 0 17
  • 太長不看版:在 Android UI 布局過程中,遵守一些慣用、有效的布局原則,可以制作出高效且復用性高的 UI。...
    Mupceet閱讀 4,023評論 0 14
  • 每個人內(nèi)心深處,總有恐懼??謶植⒉豢膳?,可怕的是你不敢去面對現(xiàn)實。既然害怕,那就淡然面對。也許會遍體鱗傷,但受傷后...
    邱梓伊閱讀 200評論 0 1
  • 真不知道這是不是巧合,或許,是真的。 講個故事,我自己的。 高中的時候,我談戀愛了,這句話說過好幾遍了。別嫌煩,不...
    呼吸的鯨魚閱讀 313評論 0 1

友情鏈接更多精彩內(nèi)容