What I did today is user login
Article Directory
1. New project
2. Create a new activity template
3. Write the layout:
【login_activity.xml】
<?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:gravity="center"
android:background="@drawable/bg"
android:orientation="vertical"
tools:context=".LoginActivity">
<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:text="@string/login_title"
android:textSize="30sp"
android:textColor="@color/purple_700"
android:layout_marginBottom="30dp"
/>
<LinearLayout
style="@style/login_input_layout"
>
<TextView
style="@style/login_text"
android:text="@string/username"
/>
<EditText
style="@style/login_input"
android:id="@+id/edt_user_name"
android:background="@drawable/border"
android:hint="@string/edt_username"
/>
</LinearLayout>
<LinearLayout
style="@style/login_input_layout"
>
<TextView
style="@style/login_text"
android:text="@string/password"
/>
<EditText
style="@style/login_input"
android:id="@+id/edt_password"
android:background="@drawable/border"
android:inputType="textPassword"
android:hint="@string/edt_password"
/>
</LinearLayout>
<LinearLayout
style="@style/login_input_layout">
<Button
style="@style/login_button"
android:id="@+id/btn_login"
android:text="@string/login"/>
<Button
style="@style/login_button"
android:id="@+id/btn_cancel"
android:text="@string/cancel"/>
</LinearLayout>
</LinearLayout>
【string】
<resources>
<string name="app_name">Task2</string>
<string name="login_title">用户登录</string>
<string name="username">用户:</string>
<string name="password">密码:</string>
<string name="edt_username">输入用户名</string>
<string name="edt_password">输入密码</string>
<string name="login">登录</string>
<string name="cancel">取消</string>
</resources>
【values/style】
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="AppTheme" parent="Theme.AppCompat.Light.NoActionBar">
<item name="colorPrimary">@color/colorPrimary</item>
<item name="colorPrimaryDark">@color/colorPrimaryDark</item>
<item name="colorAccent">@color/colorAccent</item>
</style>
<style name="login_input_layout">
<item name="android:layout_width">match_parent</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:orientation">horizontal</item>
<item name="android:gravity">center</item>
<item name="android:paddingBottom">20dp</item>
</style>
<style name="login_text">
<item name="android:layout_width">70dp</item>
<item name="android:layout_height">match_parent</item>
<item name="android:textColor">@color/black</item>
<item name="android:gravity">center|left</item>
<item name="android:textSize">20sp</item>
</style>
<style name="login_input">
<item name="android:layout_width">150dp</item>
<item name="android:layout_height">match_parent</item>
<item name="background">@drawable/border</item>
<item name="android:padding">6dp</item>
<item name="android:lines">1</item>
</style>
<style name="login_button">
<item name="android:layout_width">wrap_content</item>
<item name="android:layout_height">wrap_content</item>
<item name="android:layout_margin">6dp</item>
<item name="android:textColor">@color/black</item>
</style>
</resources>
【drawable/border】
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<stroke
android:width="1dp"
android:color="@color/teal_400"/>
<solid android:color="@color/white"/>
</shape>
4. Write java code:
【LoginActivity.java】
package com.example.task2;
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 LoginActivity extends AppCompatActivity {
private EditText edtUserName;
private EditText edtPassword;
private Button btnLogin;
private Button btnCancel;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_login);
edtUserName = findViewById(R.id.edt_user_name);
edtPassword = findViewById(R.id.edt_password);
btnLogin = findViewById(R.id.btn_login);
btnCancel = findViewById(R.id.btn_cancel);
btnLogin.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String strUsername = edtUserName.getText().toString().trim();
String strPassword = edtPassword.getText().toString().trim();
if (strUsername.equals("admin") && strPassword.equals("admin")) {
Toast.makeText(LoginActivity.this,"恭喜,用户名和密码正确!"
,Toast.LENGTH_LONG).show();
Intent intent = new Intent(LoginActivity.this, MainActivity.class);
Bundle bundle = new Bundle();
bundle.putString("username", strUsername);
bundle.putString("password", strPassword);
intent.putExtras(bundle);
startActivity(intent);
} else {
Toast.makeText(LoginActivity.this, "遗憾,用户名或密码错误!请重新输入!"
,Toast.LENGTH_LONG).show();
edtUserName.setText("");
edtPassword.setText("");
}
}
});
btnCancel.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
edtUserName.setText("");
edtPassword.setText("");
}
});
}
}
【mainActivity.java】
package com.example.task2;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.TextView;
public class MainActivity extends AppCompatActivity {
private TextView tvMain;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
tvMain = findViewById(R.id.tv_main);
// 获取意图
Bundle data = getIntent().getExtras();
String strUserName = data.getString("username");
String strPassword = data.getString("password");
tvMain.setText("Hello," + strUserName);
tvMain.setTextSize(24);
}
}
Show results:
Login failed
login successful
Summary: I have done it once before logging in to the interface. It is not difficult. This is the first time to use intent to transfer data. It is only completed after viewing the information.