android線性佈局的例項
阿新 • • 發佈:2019-02-13
先把框架弄好(開啟studio)
實現效果圖:(1)能輸入 (2)能做到基本判斷 (3)能夠響應滑鼠點選事件
(1)新建一個使用者登入的介面(將前臺展示出來)
(2)在MainActivity.java檔案新增業務邏輯(我們所要實現的功能)
(1)
<?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:orientation="vertical"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="請輸入使用者名稱:" /> <!-- 輸入框控制元件:可以讓使用者輸入自己的內容 android:text="admin":設定輸入框控制元件的預設值 @:表示訪問R類 +:新增 id:R類中的靜態內部類 editText_userName:R類中id靜態內部類的靜態常量,對應的值為:0x7f0c0050 android:id="@+id/editText_userName":在R類中新增一個靜態內部類id(如果沒有的話)的靜態常量editText_userName 相當於說:0x7f0c0050就代表當前EditText控制元件物件 --> <EditText android:id="@+id/editText_userName" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="請輸入使用者名稱" android:text="admin" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal"> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="請輸入密 碼:" /> <!-- 如何讓輸入框變成密碼框: A: android:password="true" B:android:inputType="textPassword":密碼可以是任意文字 android:inputType="numberPassword":密碼只能是數字 android:hint="請輸入密碼":當輸入框中內容為空時顯示的提示文字, 使用者一旦輸入字元則提示資訊自動消失,刪除最後一個顯示字元後提示資訊自動顯示 --> <EditText android:id="@+id/editText_password" android:layout_width="match_parent" android:layout_height="wrap_content" android:hint="請輸入密碼" android:inputType="textPassword" android:text="123" /> </LinearLayout> <!-- android:gravity="center":指定當前控制元件中子元素的對齊方式 --> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal"> <!-- Button:按鈕,可以響應使用者的操作,比如點選等 android:onClick="login":指定當使用者點選當前按鈕時執行的函式名, 函式的簽名格式為: public void 函式名(View view){}, 如: public void login(View view){} --> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="login" android:text="登入" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:onClick="reset" android:text="重置" /> </LinearLayout> </LinearLayout>
(2)
package com.example.lenovo.linearlayout_demo; import android.os.Bundle; import android.support.v7.app.AppCompatActivity; import android.text.TextUtils; import android.view.View; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private EditText editText_userName; private EditText editText_password; /** * 用來做初始化工作,如:查詢控制元件 * @param savedInstanceState */ @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //setContentView(R.layout.activity_linelayout_01); setContentView(R.layout.linearlayout_login); this.initView(); } /** * 查詢控制元件 */ private void initView() { //根據控制元件的id查詢控制元件物件 editText_userName = (EditText) this.findViewById(R.id.editText_userName); editText_password= (EditText) this.findViewById(R.id.editText_password); } /** * 當用戶點選登入按鈕時執行的函式 * @param view 事件源(使用者點選誰執行了當前函式,誰就是事件源) */ public void login(View view){ //Toast.makeText(this,"view="+view,Toast.LENGTH_LONG).show(); //得到使用者名稱控制元件中輸入的文字的內容 String userName=editText_userName.getText().toString().trim(); String password=editText_password.getText().toString().trim(); //如果userName為null或者""則TextUtils.isEmpty(userName)返回True,說明使用者沒有輸入內容 if(TextUtils.isEmpty(userName)){ this.editText_userName.setError("使用者名稱必須輸入!"); this.editText_userName.requestFocus(); return; } /* if("admin".equals(userName) && "123".equals(password)){ Toast.makeText(this,//上下文物件,當前Activity 是上下文物件的子類,因此可以直接使用當前物件this userName+"登入成功!",//顯示的提示資訊 Toast.LENGTH_LONG //顯示的時長 ).show();//讓土司顯示 }else{ Toast.makeText(this,"使用者名稱或者密碼錯誤",Toast.LENGTH_SHORT).show(); }*/ if("admin".equals(userName)){ this.editText_password.requestFocus(); if(TextUtils.isEmpty(password)){ this.editText_password.setError("密碼必須輸入!"); this.editText_password.requestFocus(); return; } if("123".equals(password)){ Toast.makeText(this,userName+"登入成功!",Toast.LENGTH_LONG).show(); }else{ Toast.makeText(this,"密碼錯誤",Toast.LENGTH_SHORT).show(); this.editText_password.setText(""); this.editText_password.requestFocus(); } }else{ Toast.makeText(this,"使用者名稱錯誤",Toast.LENGTH_SHORT).show(); this.editText_userName.setText(""); this.editText_userName.requestFocus(); } } /** * 當用戶點選重置按鈕時執行的函式 * @param view */ public void reset(View view){ //將控制元件的文字內容設定為空 this.editText_userName.setText(null); this.editText_password.setText(null); //讓使用者名稱控制元件獲得焦點 this.editText_userName.requestFocus(); } }