在论坛上看到有人在问:“请写出一个android登录页面的完整代码(包括资源、界面(自行设计)、事件)。要求:点击“登录”按钮时,如果用户名和密码输入分别是“admin”和“123456”,跳转到欢迎界面;当单击“取消”则实现清空功能。”
根据这个需求,我做了一个简单的登录页面:
1.登录页面的布局文件:
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" tools:context=".MainActivity"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_marginLeft="10dp" android:layout_marginRight="10dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="账号:" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/account_et" android:gravity="center" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:layout_margin="10dp" > <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="密码:" /> <EditText android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/password_et" android:inputType="textPassword" android:gravity="center" /> </LinearLayout> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" android:gravity="center" > <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="登录" android:layout_gravity="center_horizontal" android:id="@+id/loginbtn" /> <Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="取消" android:layout_gravity="center_horizontal" android:id="@+id/canclebtn" /> </LinearLayout> </LinearLayout>
2.登录Activity
package com.my.myloginapplication; import androidx.appcompat.app.AppCompatActivity; import android.content.Intent; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.EditText; import android.widget.Toast; public class MainActivity extends AppCompatActivity { EditText accountEt,passwordEt; Button loginBtn,cancleBtn; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); accountEt=this.findViewById(R.id.account_et); passwordEt=this.findViewById(R.id.password_et); loginBtn=this.findViewById(R.id.loginbtn) ; cancleBtn=this.findViewById(R.id.canclebtn); loginBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { String account=accountEt.getText().toString().trim(); String password=passwordEt.getText().toString().trim(); if(account.equals("admin")&&password.equals("123456")){ Intent intent=new Intent(MainActivity.this,WelcomActivity.class); startActivity(intent); }else{ Toast.makeText(MainActivity.this,"密码不正确!",Toast.LENGTH_LONG).show(); } } }); cancleBtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { passwordEt.setText(""); accountEt.setText(""); accountEt.requestFocus();//让账号输入框获取焦点 } }); } }
3.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" android:gravity="center" android:background="#99FFFF" > <TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="欢迎欢迎!" android:textSize="25sp" android:gravity="center_horizontal" /> </LinearLayout>
Activity:
package com.my.myloginapplication; import android.os.Bundle; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; public class WelcomActivity extends AppCompatActivity { @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.welcome_layout); } }
运行效果: