來到鐵人賽的第七天,今天是第一階段的總結。
前六天,我們學會了各種基本的 App 零件,包括:
TextView
:顯示文字Button
:觸發事件EditText
:接收使用者輸入ImageView
:顯示圖片SeekBar
和 CheckBox
:更精細的互動控制今天,我們要將這些零散的知識串聯起來,做一個有實際功能的 App。這個 App 的邏輯,就是程式解題中最基礎的一類題目:數字大小比較。
修改 activity_main.xml
activity_main.xml
。EditText
:用來讓使用者輸入數字。給它們一個 ID,例如 firstNumberInput
和 secondNumberInput
。別忘了設定 inputType="number"
,這樣鍵盤只會顯示數字。Button
:用來觸發比較運算。ID 設為 compareButton
,文字設為「比較大小」。TextView
:用來顯示比較結果。ID 設為 resultTextView
,文字可以先設定為「點擊按鈕進行比較」。你的 XML 程式碼,可能會像這樣:
<androidx.constraintlayout.widget.ConstraintLayout ...>
<EditText
android:id="@+id/firstNumberInput"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:hint="輸入第一個數字"
... />
<EditText
android:id="@+id/secondNumberInput"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:inputType="number"
android:hint="輸入第二個數字"
... />
<Button
android:id="@+id/compareButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="比較大小"
... />
<TextView
android:id="@+id/resultTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="點擊按鈕進行比較"
... />
</androidx.constraintlayout.widget.ConstraintLayout>
修改 MainActivity.java
MainActivity.java
。EditText
中,讀取使用者輸入的文字。if/else
條件判斷,比較這兩個數字的大小。TextView
上。以下是完整的程式碼範例:
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast; // 用來顯示錯誤訊息
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 1. 找到所有元件
EditText firstNumberInput = findViewById(R.id.firstNumberInput);
EditText secondNumberInput = findViewById(R.id.secondNumberInput);
Button compareButton = findViewById(R.id.compareButton);
TextView resultTextView = findViewById(R.id.resultTextView);
// 2. 告訴按鈕,當有人點擊它時要做什麼事
compareButton.setOnClickListener(v -> {
// 3. 讀取輸入的文字
String firstNumStr = firstNumberInput.getText().toString();
String secondNumStr = secondNumberInput.getText().toString();
// 4. 檢查是否有輸入,避免 App 崩潰
if (firstNumStr.isEmpty() || secondNumStr.isEmpty()) {
Toast.makeText(this, "請輸入兩個數字!", Toast.LENGTH_SHORT).show();
return; // 結束後續操作
}
// 5. 將文字轉換成數字
int firstNum = Integer.parseInt(firstNumStr);
int secondNum = Integer.parseInt(secondNumStr);
// 6. 使用 if/else 條件判斷
String resultMessage;
if (firstNum > secondNum) {
resultMessage = "第一個數字比較大";
} else if (secondNum > firstNum) {
resultMessage = "第二個數字比較大";
} else {
resultMessage = "兩個數字一樣大";
}
// 7. 將結果顯示在 TextView 上
resultTextView.setText(resultMessage);
});
}
}
程式碼解釋:
if (firstNumStr.isEmpty() ...)
:這是一個很重要的防呆機制,用來避免使用者沒有輸入內容就點擊按鈕,導致 App 崩潰。Integer.parseInt(...)
:這是 Java 的語法,用來將文字 (String) 轉換成數字 (int)。if/else if/else
:這就是程式中最基本的 條件判斷 語法。執行你的 App!
TextView
上顯示出正確的比較結果!恭喜你!你已經完成了第一個結合 CPE 題目的 App 專案。這證明你已經掌握了 App 開發最核心的流程,並且能夠將程式邏輯應用在實際的介面上!
今天我們學會了:
if/else
條件判斷,根據不同的情況執行不同的動作。你已經完成 App 開發新手村的第一階段!從明天開始,我們將進入第二階段:學習如何顯示一長串的清單,並製作更複雜的介面。我們將從最重要的元件之一 RecyclerView
開始!
我們明天見!
第一階段挑戰:數字大小比較 App (程式解題實戰)
恭喜你!來到鐵人賽的第七天,這也是我們第一階段的總結。
前六天,我們學會了各種基本的 App 零件,包括:
TextView
:顯示文字Button
:觸發事件EditText
:接收使用者輸入ImageView
:顯示圖片SeekBar
和 CheckBox
:更精細的互動控制今天,我們要將這些零散的知識串聯起來,做一個有實際功能的 App。這個 App 的邏輯,就是程式解題中最基礎的一類題目:數字大小比較。