|
|
package com.orangesale.cn.activity;
|
|
|
|
|
|
import android.content.ContentValues;
|
|
|
import android.content.Intent;
|
|
|
import android.database.sqlite.SQLiteDatabase;
|
|
|
import android.graphics.Color;
|
|
|
import android.os.Bundle;
|
|
|
import android.view.View;
|
|
|
import android.widget.Button;
|
|
|
import android.widget.EditText;
|
|
|
import android.widget.RadioGroup;
|
|
|
import android.widget.TextView;
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
import androidx.annotation.Nullable;
|
|
|
import androidx.appcompat.app.AppCompatActivity;
|
|
|
|
|
|
import com.lljjcoder.citypickerview.widget.CityPicker;
|
|
|
import com.orangesale.cn.R;
|
|
|
import com.orangesale.cn.dataoperation.OrangeDatabase;
|
|
|
|
|
|
public class RegisterActivity extends AppCompatActivity implements View.OnClickListener, RadioGroup.OnCheckedChangeListener {
|
|
|
private EditText usernameEdit, passwordEdit, surePasswordEdit;
|
|
|
private TextView cityText;
|
|
|
private CityPicker cityPicker;
|
|
|
private Button regButton;
|
|
|
private RadioGroup sexGroup;
|
|
|
private String sexStr = "男";
|
|
|
|
|
|
|
|
|
@Override
|
|
|
protected void onCreate(@Nullable Bundle savedInstanceState) {
|
|
|
super.onCreate(savedInstanceState);
|
|
|
setContentView(R.layout.user_register);
|
|
|
init();
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 界面组件初始化
|
|
|
*/
|
|
|
private void init() {
|
|
|
cityText = findViewById(R.id.reg_province);
|
|
|
cityText.setOnClickListener(this);
|
|
|
usernameEdit = findViewById(R.id.reg_username);
|
|
|
passwordEdit = findViewById(R.id.reg_password);
|
|
|
surePasswordEdit = findViewById(R.id.reg_sure_password);
|
|
|
regButton = findViewById(R.id.reg_register);
|
|
|
regButton.setOnClickListener(this);
|
|
|
sexGroup = findViewById(R.id.sex);
|
|
|
sexGroup.setOnCheckedChangeListener(this);
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onClick(View v) {
|
|
|
switch (v.getId()) {
|
|
|
case R.id.reg_province:
|
|
|
initCityPicker();
|
|
|
cityPicker.show();
|
|
|
break;
|
|
|
case R.id.reg_register:
|
|
|
//注册验证方法
|
|
|
validateRegister();
|
|
|
break;
|
|
|
|
|
|
}
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 初始化城市选择器
|
|
|
*/
|
|
|
public void initCityPicker() {
|
|
|
cityPicker = new CityPicker.Builder(RegisterActivity.this)
|
|
|
.textSize(16)
|
|
|
.title("地址选择")
|
|
|
.backgroundPop(0xa0000000)
|
|
|
.titleBackgroundColor("#EFB81C")
|
|
|
.titleTextColor("#000000")
|
|
|
.backgroundPop(0xa0000000)
|
|
|
.confirTextColor("#000000")
|
|
|
.cancelTextColor("#000000")
|
|
|
.province("江西省")
|
|
|
.city("赣州市")
|
|
|
.district("章贡区")
|
|
|
.textColor(Color.parseColor("#000000"))
|
|
|
.provinceCyclic(true)
|
|
|
.cityCyclic(false)
|
|
|
.districtCyclic(false)
|
|
|
.visibleItemsCount(7)
|
|
|
.itemPadding(10)
|
|
|
.onlyShowProvinceAndCity(false)
|
|
|
.build();
|
|
|
cityPicker.setOnCityItemClickListener(new CityPicker.OnCityItemClickListener() {
|
|
|
@Override
|
|
|
public void onSelected(String... strings) {
|
|
|
String province = strings[0];
|
|
|
String city = strings[1];
|
|
|
String district = strings[2];
|
|
|
cityText.setText(String.format("%s %s %s", province, city, district));
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onCancel() {
|
|
|
}
|
|
|
});
|
|
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 注册验证
|
|
|
*/
|
|
|
public void validateRegister() {
|
|
|
String username = usernameEdit.getText().toString();
|
|
|
String password = passwordEdit.getText().toString();
|
|
|
String surePassword = surePasswordEdit.getText().toString();
|
|
|
String city = cityText.getText().toString();
|
|
|
//判断两次密码是否输入一致
|
|
|
if (password.equals(surePassword)) {
|
|
|
//这里也可以再进行其它的验证,如是否符合要求等,符合就进行插入数据库操作
|
|
|
if (!username.equals("") || !password.equals("")) {
|
|
|
if (!city.equals("")) {
|
|
|
Bundle bundle = new Bundle();
|
|
|
bundle.putString("username", username);
|
|
|
bundle.putString("password", password);
|
|
|
bundle.putString("sex", sexStr);
|
|
|
bundle.putString("city", city);
|
|
|
//本节将使用安卓自身带的SQLite数据库的方式存储注册的信息(之前直接传输显示在界面是的方式)
|
|
|
OrangeDatabase orangeDatabase = new OrangeDatabase(RegisterActivity.this);
|
|
|
SQLiteDatabase sqLiteDatabase = orangeDatabase.getWritableDatabase();
|
|
|
insertData(sqLiteDatabase, bundle);
|
|
|
Intent intent = new Intent(RegisterActivity.this, IndexActivity.class);
|
|
|
intent.putExtras(bundle);
|
|
|
startActivity(intent);
|
|
|
} else {
|
|
|
Toast.makeText(RegisterActivity.this, "请选择地址", Toast.LENGTH_SHORT).show();
|
|
|
}
|
|
|
} else {
|
|
|
Toast.makeText(RegisterActivity.this, "账号或密码未填写", Toast.LENGTH_SHORT).show();
|
|
|
}
|
|
|
} else {
|
|
|
Toast.makeText(RegisterActivity.this, "两次密码输入不一致", Toast.LENGTH_SHORT).show();
|
|
|
}
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void onCheckedChanged(RadioGroup group, int checkedId) {
|
|
|
//根据用户选择来改变sex的值
|
|
|
sexStr = checkedId == R.id.reg_man ? "男" : "女";
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 插入数据库的值
|
|
|
*
|
|
|
* @param sqLiteDatabase
|
|
|
* @param bundle
|
|
|
*/
|
|
|
private void insertData(SQLiteDatabase sqLiteDatabase, Bundle bundle) {
|
|
|
ContentValues contentValues = new ContentValues();
|
|
|
contentValues.put("username", bundle.getString("username"));
|
|
|
contentValues.put("password", bundle.getString("password"));
|
|
|
contentValues.put("sex", bundle.getString("sex"));
|
|
|
contentValues.put("city", bundle.getString("city"));
|
|
|
sqLiteDatabase.insert("orange_user", null, contentValues);
|
|
|
sqLiteDatabase.close();
|
|
|
}
|
|
|
}
|