在第三天,你已經學會了如何使用 LinearLayout
和 ConstraintLayout
,將你的 App 介面排得整整齊齊。
今天,我們就要來學習 —— EditText
。
EditText
?EditText
就像是 App 的 「留言本」。它是一個可以讓使用者「輸入文字」的元件,例如:帳號、密碼、或是任何你想讓使用者填寫的內容。今天,我們要結合前兩天的知識,製作一個簡單又有趣的 App:當使用者輸入名字,按下按鈕後,App 就會向他打招呼!
修改你的 activity_main.xml
activity_main.xml
。Palette
面板中,找到 Text
分類,將 EditText
元件拖曳到畫面中央。Attributes
面板中,給這個 EditText
一個獨特的 ID,例如:@+id/nameInput
。hint
屬性中輸入「請輸入你的名字」。Button
元件,將它的 ID 改為 greetButton
,文字改成「向我打招呼」。TextView
留著,它的 ID 設為 greetingText
,內容先設為「哈囉!」。你的 XML 程式碼,大概會像這樣:
<androidx.constraintlayout.widget.ConstraintLayout ...>
<EditText
android:id="@+id/nameInput"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:hint="請輸入你的名字"
/>
<Button
android:id="@+id/greetButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="向我打招呼"
/>
<TextView
android:id="@+id/greetingText"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="哈囉!"
/>
</androidx.constraintlayout.widget.ConstraintLayout>
修改你的 MainActivity.java
MainActivity.java
。EditText
)。TextView
) 上。以下是完整的程式碼範例:
import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText; // 新增匯入 EditText
import android.widget.TextView; // 新增匯入 TextView
public class MainActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// 1. 找到所有元件,就像點名一樣
EditText nameInput = findViewById(R.id.nameInput);
Button greetButton = findViewById(R.id.greetButton);
TextView greetingText = findViewById(R.id.greetingText);
// 2. 告訴 greetButton,當有人點擊它時要做什麼事
greetButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// 3. 在這裡,我們從 nameInput 讀取文字
String name = nameInput.getText().toString();
// 4. 然後把這段文字設定到 greetingText 上
greetingText.setText("哈囉," + name + "!");
}
});
}
}
執行你的 App!
TextView
上的文字,神奇地變成了「哈囉,[你的名字]!」。今天我們學會了:
EditText
元件,讓使用者可以輸入文字。EditText
中讀取文字內容。TextView
上。明天,我們要回到介面設計的主題。我們會學習 ImageView
元件,讓你的 App 不只有文字,還能顯示圖片!
明天見!