文章目录
一:提出任务
- 设计原型图
二:任务编写
1)创建安卓项目(Registered)
2)准备图片资源
3)基于模板创建注册窗口RegisteredActivity
- 具体步骤可以看
https://blog.csdn.net/X_Serendipity/article/details/125255114
4)在字符资源文件里定义变量
- 打开strings.xml
<resources>
<string name="app_name">用户注册</string>
<string name="username">用户名:</string>
<string name="password">密 码:</string>
<string name="telephone">电 话:</string>
<string name="email">邮 箱:</string>
<string name="gender">性 别:</string>
<string name="female">女</string>
<string name="male">男</string>
<string name="hobby">兴 趣:</string>
<string name="music">音乐</string>
<string name="read">阅读</string>
<string name="food">美食</string>
<string name="enroll">注册</string>
<string name="reset">重置</string>
</resources>
5)编写注册窗口布局资源文件(activity_registered.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:background="@drawable/rbg"
android:gravity="center"
android:orientation="vertical"
tools:context=".RegisteredActivity">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center"
android:layout_weight="2">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="注册个人信息"
android:textSize="40sp"
android:textColor="@color/purple_500"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/username"
android:textSize="20sp"/>
<EditText
android:id="@+id/edt_username"
android:layout_width="168dp"
android:layout_height="wrap_content"
android:singleLine="true"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/password"
android:textSize="20sp"/>
<EditText
android:id="@+id/edt_password"
android:layout_width="168dp"
android:layout_height="wrap_content"
android:singleLine="true"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/telephone"
android:textSize="20sp"/>
<EditText
android:id="@+id/edt_telephone"
android:layout_width="168dp"
android:layout_height="wrap_content"
android:singleLine="true"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/email"
android:textSize="20sp"/>
<EditText
android:id="@+id/edt_email"
android:layout_width="168dp"
android:layout_height="wrap_content"
android:singleLine="true"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
android:orientation="horizontal"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/gender"
android:textSize="20sp"/>
<RadioGroup
android:id="@+id/rg_gender"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:id="@+id/rb_female"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginRight="30dp"
android:layout_marginLeft="28dp"
android:checked="true"
android:text="@string/female"/>
<RadioButton
android:id="@+id/rb_male"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/male"/>
</RadioGroup>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal"
android:layout_weight="1">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hobby"
android:textSize="20sp"/>
<CheckBox
android:id="@+id/cb_music"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/music" />
<CheckBox
android:id="@+id/cb_read"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/read"/>
<CheckBox
android:id="@+id/cb_food"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/food"/>
</LinearLayout>
<LinearLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center_horizontal"
android:orientation="horizontal"
android:layout_weight="8">
<Button
android:id="@+id/btn_enroll"
android:layout_width="80dp"
android:layout_height="50dp"
android:layout_marginRight="50dp"
android:onClick="doEnroll"
android:text="@string/enroll"/>
<Button
android:id="@+id/btn_reset"
android:layout_width="80dp"
android:layout_height="50dp"
android:onClick="doReset"
android:text="@string/reset"/>
</LinearLayout>
</LinearLayout>
6)编写注册窗口(RegisteredActivity)
package com.liufanrong.registered;
import androidx.appcompat.app.AppCompatActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.CheckBox;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
public class RegisteredActivity extends AppCompatActivity {
private EditText edtUsername;
private EditText edtPassword;
private EditText edtTelephone;
private EditText edtEmail;
private RadioGroup rgGender;
private RadioButton rbMale;
private RadioButton rbFemale;
private CheckBox cbMusic;
private CheckBox cbRead;
private CheckBox cbFood;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_registered);
// 通过资源标识符获得控件实例
edtUsername = findViewById(R.id.edt_username);
edtPassword = findViewById(R.id.edt_password);
edtTelephone = findViewById(R.id.edt_telephone);
edtEmail = findViewById(R.id.edt_email);
rgGender = findViewById(R.id.rg_gender);
rbFemale = findViewById(R.id.rb_female);
rbMale = findViewById(R.id.rb_male);
cbMusic = findViewById(R.id.cb_music);
cbRead = findViewById(R.id.cb_read);
cbFood = findViewById(R.id.cb_food);
}
/**
* 注册按钮事件处理方法
*/
public void doEnroll(View view) {
String strUsername = edtUsername.getText().toString().trim();
String strPassword = edtPassword.getText().toString().trim();
String strTelephone = edtTelephone.getText().toString().trim();
String strEmail = edtEmail.getText().toString().trim();
// 获取性别值
String strGender = "";
switch (rgGender.getCheckedRadioButtonId()) {
case R.id.rb_female:
strGender = rbFemale.getText().toString();
break;
case R.id.rb_male:
strGender = rbMale.getText().toString();
break;
}
// 获取爱好
StringBuilder builder = new StringBuilder();
if (cbMusic.isChecked()) {
builder.append(cbMusic.getText().toString() + " ");
}
if (cbRead.isChecked()) {
builder.append(cbRead.getText().toString() + " ");
}
if (cbFood.isChecked()) {
builder.append(cbFood.getText().toString() + " ");
}
String strHobby = builder.toString().trim();
// 判断条件(如果输入内容不全)
if (!"".equals(strUsername) && !"".equals(strPassword) && !"".equals(strTelephone) && !"".equals(strEmail) && !"".equals(strGender) && !"".equals(strHobby)) {
Toast.makeText(RegisteredActivity.this,"恭喜,注册成功~", Toast.LENGTH_SHORT).show();
// 创建显示意图
Intent intent = new Intent(RegisteredActivity.this,MainActivity.class);
// 通过意图携带数据
intent.putExtra("username", strUsername);
intent.putExtra("password", strPassword);
intent.putExtra("telephone", strTelephone);
intent.putExtra("email", strEmail);
intent.putExtra("gender", strGender);
intent.putExtra("hobby", strHobby);
// 按照意图启动目标组件
startActivity(intent);
}else {
Toast.makeText(RegisteredActivity.this,"请将信息补充完整~", Toast.LENGTH_SHORT).show();
}
}
/**
* 重置事件处理方法
*/
public void doReset(View view) {
edtUsername.setText("");
edtPassword.setText("");
edtTelephone.setText("");
edtEmail.setText("");
cbMusic.setChecked(false);
cbRead.setChecked(false);
cbFood.setChecked(false);
edtUsername.requestFocus();
}
}
7)编写主窗口布局资源文件(activity_main.xml)
<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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"
tools:context=".MainActivity">
<TextView
android:id="@+id/tv_message"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20sp"/>
</androidx.constraintlayout.widget.ConstraintLayout>
8)修改主界面MainActivity
9)编写项目清单文件AndroidManifest.xml
- 删除MainActivity元素的意图过滤器