package com.example.theseventhexperiment;
// 导入必要的包
import android.os.Bundle;
import android.text.TextUtils;
import android.view.View;
import android.widget.*;
import androidx.appcompat.app.AppCompatActivity;
import java.util.*;
public class AddContactActivity extends AppCompatActivity implements View.OnClickListener {
// 声明UI组件
private ImageButton ib_back;
private Button btn_tianjia;
private EditText et_xingming, et_dianhuahaoma, et_dianziyoujian, et_beizhu, et_danweixinxi;
private Spinner spinner;
// 声明数据变量
private String name, e_mail, remark, unit_information, number, avatar, from;
private int id;
private Integer selectedImageResource;
private UserDBHelper mHelper;
private List<Map<String, Integer>> data; // 使用Integer类型,因为资源ID是整数
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_add_contact);
// 初始化视图组件
initView();
// 设置监听器
setListener();
// 获取传递过来的数据
getValue();
// 设置视图内容
setView();
// 初始化并设置Spinner适配器
setupSpinner();
}
// 初始化视图组件
private void initView() {
ib_back = findViewById(R.id.ib_back);
btn_tianjia = findViewById(R.id.btn_tianjia);
et_xingming = findViewById(R.id.et_xingming);
et_dianhuahaoma = findViewById(R.id.et_dianhuahaoma);
et_dianziyoujian = findViewById(R.id.et_dianziyoujian);
et_beizhu = findViewById(R.id.et_beizhu);
et_danweixinxi = findViewById(R.id.et_danweixinxi);
spinner = findViewById(R.id.spinner_contact_icon);
}
// 设置监听器
private void setListener() {
ib_back.setOnClickListener(this);
btn_tianjia.setOnClickListener(this);
}
// 获取传递过来的数据
private void getValue() {
from = getIntent().getStringExtra("from");
if ("edit".equals(from)) {
id = getIntent().getIntExtra("id", 0);
name = getIntent().getStringExtra("name");
number = getIntent().getStringExtra("number");
avatar = getIntent().getStringExtra("avatar");
e_mail = getIntent().getStringExtra("e-mail");
remark = getIntent().getStringExtra("remark");
unit_information = getIntent().getStringExtra("unit_information");
// 对可能为null的字符串进行默认值处理
if (e_mail == null) e_mail = "无";
if (remark == null) remark = "无";
if (unit_information == null) unit_information = "无";
}
}
// 设置视图内容
private void setView() {
if ("edit".equals(from)) {
et_xingming.setText(name);
et_dianhuahaoma.setText(number);
et_dianziyoujian.setText(e_mail);
et_beizhu.setText(remark);
et_danweixinxi.setText(unit_information);
}
}
// 初始化并设置Spinner适配器
private void setupSpinner() {
// 准备数据
data = getListData();
// 创建SimpleAdapter并设置给Spinner
SimpleAdapter simpleAdapter = new SimpleAdapter(
this,
data,
R.layout.spinner_item, // 自定义布局
new String[]{"touxiang"}, // 数据源中的键
new int[]{R.id.imageView} // 布局中的ID
);
spinner.setAdapter(simpleAdapter);
// 设置Spinner选择监听器
spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
@Override
public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
// 获取选中的项并设置给selectedImageResource
Map<String, Integer> selectedItem = (Map<String, Integer>) parent.getItemAtPosition(position);
selectedImageResource = selectedItem.get("touxiang");
}
@Override
public void onNothingSelected(AdapterView<?> parent) {
// 不执行任何操作
}
});
}
// 获取Spinner列表数据
private List<Map<String, Integer>> getListData() {
List<Map<String, Integer>> list = new ArrayList<>();
int[] touxiangResources = {
R.drawable.touxiang1, R.drawable.touxiang2, R.drawable.touxiang3,
R.drawable.touxiang4, R.drawable.touxiang5, R.drawable.touxiang6
};
for (int resource : touxiangResources) {
Map<String, Integer> item = new HashMap<>();
item.put("touxiang", resource);
// 如果是编辑模式且当前资源是选中的头像,则将其添加到列表的开头
if ("edit".equals(from) && resource == Integer.parseInt(avatar)) {
list.add(0, item);
} else {
list.add(item);
}
}
return list;
}
// 数据库帮助器的初始化与关闭
@Override
protected void onStart() {
super.onStart();
mHelper = UserDBHelper.getInstance(this);
mHelper.getReadableDatabase(); // 通常不需要显式调用,除非需要立即访问
mHelper.getWritableDatabase(); // 同上
}
@Override
protected void onStop() {
super.onStop();
if (mHelper != null) {
mHelper.close();
}
}
// 点击事件处理
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.ib_back:
finish();
break;
case R.id.btn_tianjia:
// 获取输入框内容并进行校验
String et_name = et_xingming.getText().toString().trim();
String et_phone = et_dianhuahaoma.getText().toString().trim();
String et_email = et_dianziyoujian.getText().toString().trim();
String et_remark = et_beizhu.getText().toString().trim();
String et_unitInfo = et_danweixinxi.getText().toString().trim();
// 对空值或无效输入进行处理
if (TextUtils.isEmpty(et_name)) {
Toast.makeText(this, "请输入姓名", Toast.LENGTH_SHORT).show();
} else if (TextUtils.isEmpty(et_phone) || !et_phone.matches("\\d+")) {
Toast.makeText(this, "请输入有效的电话号码", Toast.LENGTH_SHORT).show();
} else {
// 创建联系人对象并保存
Contacter contacter = new Contacter(
et_name, et_phone, et_email, et_remark, et_unitInfo,
selectedImageResource != null ? selectedImageResource.toString() : null
);
if ("edit".equals(from)) {
// 更新联系人
if (mHelper.updateContact(id, contacter) > 0) {
Toast.makeText(this, "修改成功", Toast.LENGTH_SHORT).show();
finish();
} else {
Toast.makeText(this, "修改失败", Toast.LENGTH_SHORT).show();
}
} else if ("add".equals(from)) {
// 添加联系人
if (mHelper.insert(contacter) > 0) {
Toast.makeText(this, "添加成功", Toast.LENGTH_SHORT).show();
finish();
} else {