1. 程式人生 > >【安卓學習筆記】Android Studio第3課——EditText控制元件

【安卓學習筆記】Android Studio第3課——EditText控制元件

EditText和TextView很相似,主要不同的是EditText是使用者可以在上面編輯本文的,而TextView只能用app本身去改變和顯示。

做了一個簡單的登入介面:


xml程式碼如下

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/L3_text_name"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="使用者名稱"
        android:textSize="20sp"
        android:textColor="#000000"
        android:layout_marginTop="40dp"
        android:layout_marginLeft="10dp"/>

    <EditText
        android:id="@+id/L3_edt_name"
        android:layout_toRightOf="@id/L3_text_name"
        android:layout_alignBottom="@+id/L3_text_name"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:hint="Name"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:paddingLeft="20dp"
        android:paddingRight="20dp"
        android:maxLines="1"/>
    <TextView
        android:id="@+id/L3_text_password"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="密碼"
        android:textSize="20sp"
        android:textColor="#000000"
        android:layout_below="@+id/L3_text_name"
        android:layout_marginTop="20dp"
        android:layout_alignRight="@id/L3_text_name" />
    <EditText
        android:id="@+id/L3_edt_password"
        android:layout_width="match_parent"
        android:layout_height="40dp"
        android:hint="PassWord"
        android:layout_toRightOf="@id/L3_text_password"
        android:layout_alignBottom="@id/L3_text_password"
        android:layout_marginLeft="20dp"
        android:layout_marginRight="20dp"
        android:inputType="textPassword"
        android:paddingLeft="20dp"
        android:paddingRight="20dp"
        android:maxLines="1"/>

    <Button
        android:id="@+id/L3_button_login"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerVertical="true"
        android:layout_centerHorizontal="true"
        android:text="登入"
        android:textSize="30sp"/>
</RelativeLayout>

這裡主要說明一下EditText控制元件的屬性,除了基本的屬性外,有一個hint屬性inputType(輸入型別)屬性。

1、hint屬性:主要是在EditText框中做提示作用,顯示為淺灰色背景,比如使用者名稱框在使用者沒有輸入任何字元的時候就顯示一行“請輸入使用者名稱”的提示資訊,當用戶輸入後資訊消失。

2、inputType屬性有很多常用的輸入型別,這裡用到密碼輸入就選用:textPassword,即輸入的時候密碼不可見,其他的也不多深究,以後用到再說。

下面是Activity的程式碼

package com.example.urien.secondapp;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class Lesson3_Activity extends AppCompatActivity {

    //1.宣告控制元件
    private EditText L3_edt_name;
    private EditText L3_edt_password;
    private Button L3_button_login;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_lesson3_);

        //2.找到相應的控制元件
        L3_edt_name = findViewById(R.id.L3_edt_name);
        L3_edt_password = findViewById(R.id.L3_edt_password);
        L3_button_login = findViewById(R.id.L3_button_login);


        //4.設定相應的監聽器
        L3_button_login.setOnClickListener(L3_button_login_listener);
    }

    //3.實現監聽器方法體內容
    Button.OnClickListener L3_button_login_listener = new Button.OnClickListener(){
        @Override
        public void onClick(View v) {
            String login = "登入成功";
            String name = L3_edt_name.getText().toString();
            String password = L3_edt_password.getText().toString();
            Toast.makeText(Lesson3_Activity.this,login + " " + name + " " + password,Toast.LENGTH_LONG).show();

        }
    };
}

程式碼也很簡單,當用戶電機登入按鈕後,觸發點選事件,處理的時候獲取兩個EditText中的內容並轉成字串,然後把兩個都列印到螢幕上。

By Urien 2018年5月9日 16:37:25