我们在写项目的过程中都会遇到登录页面,很多新手都不会写登录页面的逻辑,今天给大家带来一个简单的登录页面
不废话直接上代码
第一步,布局:
在drawable文件下创建一个ed_background的一个xml文件用来画EdText的边框
在drawable文件下创建一个spinner_border的一个xml文件用来画Spinner的边框
在value下创建一个arrays,里面写我们的下拉菜单中中的内容
- 学员
- 教练
- 队医
- 领导
第二步通过我们通过布局中对控件给出的id,在Activiy中进行找控件,然后写逻辑
package com.example.androoid;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import java.util.regex.Pattern;
public class LoginActivity extends AppCompatActivity {
private Spinner sp_choose;
private EditText ed_name;
private EditText ed_passwprd;
private CheckBox cbx_password;
private TextView text_registered;
private Button button_login;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
sp_choose = findViewById(R.id.sp_choose);
ed_name = findViewById(R.id.ed_name);
ed_passwprd = findViewById(R.id.ed_password);
cbx_password = findViewById(R.id.cbx_password);
text_registered = findViewById(R.id.text_registered);
button_login = findViewById(R.id.button_login);
}
}
然后在onCreate中写一个initonckick()用来写我们的按钮逻辑完整代码如下
package com.example.androoid;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.Spinner;
import android.widget.TextView;
import android.widget.Toast;
import java.util.regex.Pattern;
public class LoginActivity extends AppCompatActivity {
private Spinner sp_choose;
private EditText ed_name;
private EditText ed_passwprd;
private CheckBox cbx_password;
private TextView text_registered;
private Button button_login;
public static final String REGEX_USERNAME = "^[a-zA-Z0-9]{6,20}$";
public static final String REGEX_PASSWORD = ""^(?=.*?[a-z])(?=.*?[0-9])[a-zA-Z0-9_]{6,16}$"";
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
sp_choose = findViewById(R.id.sp_choose);
ed_name = findViewById(R.id.ed_name);
ed_passwprd = findViewById(R.id.ed_password);
cbx_password = findViewById(R.id.cbx_password);
text_registered = findViewById(R.id.text_registered);
button_login = findViewById(R.id.button_login);
initonckick();
}
public static boolean isUsername(String username) {
return Pattern.matches(REGEX_USERNAME, username);
}
public static boolean isPassword(String password) {
return Pattern.matches(REGEX_PASSWORD, password);
}
private void initonckick() {
final String name = ed_name.getText().toString();
final String passwprd =ed_passwprd.getText().toString();
text_registered.setonClickListener(new View.onClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent(LoginActivity.this, RegisteredActivity.class);
startActivity(intent);
}
});
button_login.setonClickListener(new View.onClickListener() {
@Override
public void onClick(View v) {
if (!isUsername(name) && !isPassword(passwprd)){
Toast.makeText(LoginActivity.this, "用户名或密码格式不对", Toast.LENGTH_SHORT).show();
}else {
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
startActivity(intent);
}
}
});
}
}
这个就是一个简单的登录页面的逻辑



