安卓Dao三层架构SQLite数据操作

Damara ·
更新时间:2024-09-20
· 730 次阅读

安卓Dao三层架构SQLite数据操作 MainActivity类代码如下 public class MainActivity extends AppCompatActivity { private EditText userName; private EditText pwd; private Context context; private UserInfoManager userInfoManager; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); userName = (EditText) findViewById(R.id.userName); pwd = (EditText) findViewById(R.id.pwd); context=this; userInfoManager = UserInfoManager.getInstance(context); } //注册单击事件 public void registBntOnclick(View view) { showDialog(); } //登录点击事件 public void loginBntOnclick(View view) { User us =new User( userName.getText().toString(),pwd.getText().toString()); Log.i("ddd",pwd.getText().toString()); User user =userInfoManager.login(us); if (user!=null){ Toast.makeText(this,"登录成功",Toast.LENGTH_SHORT).show(); Intent intent =new Intent(this,SecondActivity.class); intent.putExtra("user",user); startActivity(intent); }else { userName.setText(us.getUserName()); Toast.makeText(this,"登录失败",Toast.LENGTH_SHORT).show(); } } //初始化并弹出对话框方法 private void showDialog() { View view = LayoutInflater.from(this).inflate(R.layout.regist_dialog_layout, null, false); final AlertDialog dialog = new AlertDialog.Builder(this).setView(view).create(); //数据处理 final EditText RUserName = (EditText) view.findViewById(R.id.R_userName);//用户名 final EditText RPhone = (EditText) view.findViewById(R.id.R_phone);//电话号码 final EditText RPwd = (EditText) view.findViewById(R.id.R_pwd);//密码 Button okBnt = (Button) view.findViewById(R.id.ok_bnt);//确定按钮 Button noBnt = (Button) view.findViewById(R.id.no_bnt);//取消按钮 //确定按钮单击事件 okBnt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { final User us =new User(); us.setUserName(RUserName.getText().toString()); us.setPhone(RPhone.getText().toString()); us.setSex("女"); us.setPwd(RPwd.getText().toString()); int count =userInfoManager.add(us); if (count>0){ /* @setIcon 设置对话框图标 * @setTitle 设置对话框标题 * @setMessage 设置对话框消息提示 */ final AlertDialog.Builder normalDialog = new AlertDialog.Builder(MainActivity.this); normalDialog.setTitle("提示"); normalDialog.setMessage("注册成功跳转登录界面吗?"); normalDialog.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog1, int which) { //...To-do dialog1.dismiss(); dialog.dismiss(); userName.setText(us.getUserName()); pwd.setText(us.getPwd()); } }); normalDialog.show(); }else { final AlertDialog.Builder normalDialog = new AlertDialog.Builder(MainActivity.this); normalDialog.setTitle("提示"); normalDialog.setMessage("注册失败!"); normalDialog.setPositiveButton("确定", new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog1, int which) { //...To-do dialog1.dismiss(); } }); normalDialog.show(); } } }); //取消按钮单击事件 noBnt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); dialog.show(); //此处设置位置窗体大小,我这里设置为了手机屏幕宽度的3/4 注意一定要在show方法调用后再写设置窗口大小的代码,否则不起效果会 dialog.getWindow().setLayout((ScreenUtils.getScreenWidth(this) / 4 * 4), LinearLayout.LayoutParams.WRAP_CONTENT); } }

SecondActivity类代码如下

public class SecondActivity extends AppCompatActivity { private TextView txUserName;//用户名 private TextView txNumber;//电话 private TextView txInterest;//爱好 private TextView sex;//性别 private TextView myself;//个人简介 private Button selAll;//查询所有 private Button upPwd;//修改密码 private User user;//用户对象 private Context context;//上下文 private UserInfoManager userInfoManager; private ListView lv;//ListView视图 private List dataList = new ArrayList();//存储数据 private ListItemAdapter listViewAdapter;//ListView的数据适配器 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); context = this; userInfoManager = UserInfoManager.getInstance(context); //初始化控键 intin(); } //初始化控键 private void intin() { txUserName = (TextView) findViewById(R.id.tx_userName); txNumber = (TextView) findViewById(R.id.tx_number); txInterest = (TextView) findViewById(R.id.tx_interest); sex = (TextView) findViewById(R.id.sex); myself = (TextView) findViewById(R.id.myself); selAll = (Button) findViewById(R.id.sel_all); upPwd = (Button) findViewById(R.id.up_pwd); lv = (ListView) findViewById(R.id.lv); Intent intent = getIntent(); user = (User) getIntent().getSerializableExtra("user"); txUserName.setText("用 户 名:"+user.getUserName()); txNumber.setText("电话号码:"+user.getPhone()); Log.i("activity_second", user.getUserName()); } //修改密码 public void upPwdOnclick(View view) { showDialog(); } //查询所有用户 public void selAllOnclick(View view) { //初始化5项数据 dataList = userInfoManager.findAll(); //设置ListView的适配器 listViewAdapter = new ListItemAdapter(this, dataList); lv.setAdapter(listViewAdapter); lv.setSelection(4); } //初始化并弹出对话框方法 private void showDialog() { View view = LayoutInflater.from(this).inflate(R.layout.update_pwd_dialog_layout, null, false); final AlertDialog dialog = new AlertDialog.Builder(this).setView(view).create(); //数据处理 final EditText UpUserName = (EditText) view.findViewById(R.id.Up_userName); final EditText oldPwd = (EditText) view.findViewById(R.id.old_pwd); final EditText newPwd = (EditText) view.findViewById(R.id.new_pwd); Button upOkBnt = (Button) view.findViewById(R.id.up_ok_bnt); Button upNoBnt = (Button) view.findViewById(R.id.up_no_bnt); //确定按钮单击事件 upOkBnt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { User us = new User(UpUserName.getText().toString(), oldPwd.getText().toString()); int count = userInfoManager.updatePwd(us, newPwd.getText().toString()); if (count > 0) { Toast.makeText(SecondActivity.this, "修改成功", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(SecondActivity.this, "修改失败", Toast.LENGTH_SHORT).show(); } dialog.dismiss(); } }); //取消按钮单击事件 upNoBnt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dialog.dismiss(); } }); dialog.show(); //此处设置位置窗体大小,我这里设置为了手机屏幕宽度的3/4 注意一定要在show方法调用后再写设置窗口大小的代码,否则不起效果会 dialog.getWindow().setLayout((ScreenUtils.getScreenWidth(this) / 4 * 4), LinearLayout.LayoutParams.WRAP_CONTENT); } public class ListItemAdapter extends BaseAdapter { private Context context;//上下文对象 private List dataList;//ListView显示的数据 /** * 构造器 * * @param context 上下文对象 * @param dataList 数据 */ public ListItemAdapter(Context context, List dataList) { this.context = context; this.dataList = dataList; } @Override public int getCount() { return dataList == null ? 0 : dataList.size(); } @Override public Object getItem(int position) { return dataList.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(final int position, View convertView, ViewGroup parent) { ViewHolder viewHolder; //判断是否有缓存 if (convertView == null) { convertView = LayoutInflater.from(context).inflate(R.layout.all_item_layout, null); viewHolder = new ViewHolder(convertView); convertView.setTag(viewHolder); } else { //得到缓存的布局 viewHolder = (ViewHolder) convertView.getTag(); } //设置内容 viewHolder.txName.setText(dataList.get(position).getUserName()); viewHolder.delBnt.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View arg0) { // TODO Auto-generated method stub //从集合中删除所删除项的EditText的内容 int count = userInfoManager.remove(dataList.get(position).getId()); if (count > 0) { dataList.remove(position); listViewAdapter.notifyDataSetChanged(); Toast.makeText(SecondActivity.this, "删除成功", Toast.LENGTH_SHORT).show(); } else { Toast.makeText(SecondActivity.this, "删除失败", Toast.LENGTH_SHORT).show(); } } }); return convertView; } /** * ViewHolder类 */ class ViewHolder { TextView txName; Button delBnt; /** * 构造器 * * @param view 视图组件(ListView的子项视图) */ ViewHolder(View view) { txName = (TextView) view.findViewById(R.id.tx_name); delBnt = (Button) view.findViewById(R.id.del_bnt); } } } activity_main.xml 代码块
需要 登录 后方可回复, 如果你还没有账号请 注册新账号