/*
设计如下四个界面,界面分别为“开始界面”(MainActivity)、“基本信息界面”(BasicInfoActivity)、“院系专业界面”(SchoolInfoActivity)、“其他信息界面”(OtherInfoActivity),单击第一个界面“进入”按钮跳转到第二个界面,在第二个界面录入学生基本信息,这个界面的籍贯及生日信息从身份证号提取(籍贯提取使用Service实现,类名为NativePlaceService),并自动填充到对应的文本编辑框中,单击第二个界面“下一步”按钮跳转到第三个界面,在第三个界面录入院系、专业、班级等信息,单击第三个界面“下一步”按钮跳转到第四个界面,在第四个界面录入电话、电子邮箱、微信号、特长相关信息,单击第四个界面“提交”按钮后,将所有录入信息通过广播方式进行发送,广播接收器(MyBroadcastReceiver)接收到广播后,弹出对话框,对话框显示所有录入信息,单击对话框的“确定”后,将信息存入数据库,单击“取消”按钮,返回第二个界面。
*/
package com.xatu.final_exam_test;
import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.RadioButton;
import android.widget.RadioGroup;
import android.widget.Toast;
public class BasicInfoActivity extends AppCompatActivity implements View.OnClickListener, RadioGroup.OnCheckedChangeListener {
private Button button_next;
private EditText editText_id, editText_name, editText_idcard,editText_year,editText_month,editText_day,editText_place;
private RadioGroup radioGroup_sex;
private RadioButton radioButton_boy, radioButton_girl;
private String selectedType_sex = “”;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_basic_info);
IntView();
button_next.setOnClickListener(this);
radioGroup_sex.setOnCheckedChangeListener(this);
}
public void IntView() {
button_next = findViewById(R.id.btn_next);
editText_id = findViewById(R.id.et_id);
editText_name = findViewById(R.id.et_name);
editText_idcard = findViewById(R.id.et_idcard);
editText_idcard.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
String idcard=s.toString().trim();
String city=CityMap.findCity(BasicInfoActivity.this,idcard);
String year = "";
String month = "";
String day = "";
if(editText_idcard.getText().toString().length() == 18 ) {
year = editText_idcard.getText().toString().substring(6, 10);
month = editText_idcard.getText().toString().substring(10, 12);
day = editText_idcard.getText().toString().substring(12, 14);
}
if (city!=null){
// 获取籍贯信息,添加生日信息
editText_place.setText(city);
editText_year.setText(year);
editText_month.setText(month);
editText_day.setText(day);
}
}
});
radioGroup_sex = findViewById(R.id.radio_sex);
radioButton_boy = findViewById(R.id.radio_boy);
radioButton_girl = findViewById(R.id.radio_girl);
editText_place=findViewById(R.id.et_NativePlace);
editText_place.setEnabled(false);
editText_year=findViewById(R.id.et_year);
editText_year.setEnabled(false);
editText_month=findViewById(R.id.et_month);
editText_month.setEnabled(false);
editText_day=findViewById(R.id.et_day);
editText_day.setEnabled(false);
}
@Override
public void onCheckedChanged(RadioGroup group, int id) {
if (id == R.id.radio_boy) {
selectedType_sex = radioButton_boy.getText().toString();
} else {
selectedType_sex = radioButton_girl.getText().toString();
}
}
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.btn_next:
Intent intent2 = new Intent(BasicInfoActivity.this, SchoolInfoActivity.class);
intent2.putExtra("xuehao", editText_id.getText().toString().trim());
intent2.putExtra("name", editText_name.getText().toString().trim());
intent2.putExtra("idcard", editText_idcard.getText().toString().trim());
intent2.putExtra("sex", selectedType_sex.toString().trim());
// Toast.makeText(BasicInfoActivity.this, “姓名:” + editText_name.getText().toString() +
// “\n 学号:” + editText_id.getText().toString() + “\n 身份证号:” + editText_idcard.getText().toString()
// + “\n 性别:” + selectedType_sex.toString(), Toast.LENGTH_SHORT).show();
startActivity(intent2);
break;
}
}
}
package com.xatu.final_exam_test;
import android.content.Context;
import org.json.JSONException;
import org.json.JSONObject;
import java.io.IOException;
import java.io.InputStream;
public class CityMap {
private static JSONObject json;
public static String findCity(Context context, String idCode) {
if (idCode.length() >= 6) {
if (json == null) {
try {
InputStream in = context.getAssets().open("city_map.json");
byte[] bytes = new byte[in.available()];
in.read(bytes);
in.close();
json = new JSONObject(new String(bytes));
} catch (IOException | JSONException e) {
e.printStackTrace();
}
}
String code = idCode.substring(0, 6);
try {
return json.getString(code);
} catch (JSONException e) {
e.printStackTrace();
}
}
return null;
}
}
package com.xatu.final_exam_test;
import android.content.ContentValues;
import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteOpenHelper;
import android.database.sqlite.SQLiteException;
public class DBAdapter {
private static final String DB_NAME = “student.db”;
static final String DB_TABLE = “studentinfo”;
private static final int DB_VERSION = 1;
public static final String KEY_ID = "student_id";
public static final String KEY_NAME = "name";
public static final String KEY_IDCARD = "id_numbe";
public static final String KEY_SEX = "sex";
public static final String KEY_PLACE = "native_place";
public static final String KEY_BIRTHDAY = "birthday";
public static final String KEY_SCHOOL = "school";
public static final String KEY_MAJOR = "major";
public static final String KEY_CLASS = "student_class";
public static final String KEY_PHONE = "phone";
public static final String KEY_EMAIL = "email";
public static final String KEY_WEIXIN = "weixin_number";
public static final String KEY_TECHANG = "special_skill";
private SQLiteDatabase db;
private Context context;
private DBOpenHelper dbOpenHelper;
private static class DBOpenHelper extends SQLiteOpenHelper {
public DBOpenHelper(Context context, String name,
SQLiteDatabase.CursorFactory factory, int version) {
super(context, name, factory, version);
}
private static final String DB_CREATE = "create table " + DB_TABLE + "(" + KEY_ID + " integer primary key autoincrement," +
KEY_NAME + "text no