Android中结合OrmLite for android组件对SQLite的CRUD(增删改查)操作实例(三)
16lz
2021-01-24
StudentListActivity.java源码:
- packagecom.andyidea.ormsqlite;
- importjava.sql.SQLException;
- importjava.util.List;
- importAndroid.app.AlertDialog;
- importAndroid.content.Context;
- importAndroid.content.DialogInterface;
- importAndroid.content.Intent;
- importAndroid.os.Bundle;
- importAndroid.view.ContextMenu;
- importAndroid.view.ContextMenu.ContextMenuInfo;
- importAndroid.view.LayoutInflater;
- importAndroid.view.Menu;
- importAndroid.view.MenuItem;
- importAndroid.view.View;
- importAndroid.view.ViewGroup;
- importAndroid.widget.AdapterView.AdapterContextMenuInfo;
- importAndroid.widget.BaseAdapter;
- importAndroid.widget.ListView;
- importAndroid.widget.TextView;
- importcom.andyidea.bean.Student;
- importcom.andyidea.db.DatabaseHelper;
- importcom.j256.ormlite.Android.apptools.OrmLiteBaseActivity;
- importcom.j256.ormlite.dao.Dao;
- publicclassStudentListActivityextendsOrmLiteBaseActivity<DatabaseHelper>{
- privateContextmContext;
- privateListViewlvStudents;
- privateDao<Student,Integer>stuDao;
- privateList<Student>students;
- privateStudentsAdapteradapter;
- privateStudentmStudent;
- privatefinalintMENU_VIEW=Menu.FIRST;
- privatefinalintMENU_EDIT=Menu.FIRST+1;
- privatefinalintMENU_DELETE=Menu.FIRST+2;
- privateintposition;
- @Override
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.students);
- mContext=getApplicationContext();
- lvStudents=(ListView)findViewById(R.id.stulist);
- registerForContextMenu(lvStudents);//注册上下文菜单
- queryListViewItem();
- adapter=newStudentsAdapter(students);
- lvStudents.setAdapter(adapter);
- }
- @Override
- publicvoidonCreateContextMenu(ContextMenumenu,Viewv,
- ContextMenuInfomenuInfo){
- if(v==lvStudents)
- position=((AdapterContextMenuInfo)menuInfo).position;
- menu.add(0,MENU_VIEW,0,"查看");
- menu.add(0,MENU_EDIT,0,"编辑");
- menu.add(0,MENU_DELETE,0,"删除");
- super.onCreateContextMenu(menu,v,menuInfo);
- }
- @Override
- publicbooleanonContextItemSelected(MenuItemitem){
- switch(item.getItemId()){
- caseMENU_VIEW:
- viewListViewItem(position);
- break;
- caseMENU_EDIT:
- editListViewItem(position);
- break;
- caseMENU_DELETE:
- deleteListViewItem(position);
- break;
- default:
- break;
- }
- returnsuper.onContextItemSelected(item);
- }
- /**
- *查询记录项
- */
- privatevoidqueryListViewItem(){
- try{
- stuDao=getHelper().getStudentDao();
- //查询所有的记录项
- students=stuDao.queryForAll();
- }catch(SQLExceptione){
- e.printStackTrace();
- }
- }
- /**
- *查看记录项
- *@paramposition
- */
- privatevoidviewListViewItem(intposition){
- mStudent=students.get(position);
- Intentintent=newIntent();
- intent.setClass(mContext,MainActivity.class);
- intent.putExtra("action","viewone");
- intent.putExtra("entity",mStudent);
- startActivity(intent);
- }
- /**
- *编辑记录项
- */
- privatevoideditListViewItem(intposition){
- mStudent=students.get(position);
- Intentintent=newIntent();
- intent.setClass(mContext,MainActivity.class);
- intent.putExtra("action","edit");
- intent.putExtra("entity",mStudent);
- startActivity(intent);
- }
- /**
- *删除记录项
- *@paramposition
- */
- privatevoiddeleteListViewItem(intposition){
- finalintpos=position;
- AlertDialog.Builderbuilder2=newAlertDialog.Builder(StudentListActivity.this);
- builder2.setIcon(Android.R.drawable.ic_dialog_alert)
- .setTitle("警告")
- .setMessage("确定要删除该记录");
- builder2.setPositiveButton("确定",newDialogInterface.OnClickListener(){
- @Override
- publicvoidonClick(DialogInterfacedialog,intwhich){
- StudentmDelStudent=(Student)lvStudents.getAdapter().getItem(pos);
- try{
- stuDao.delete(mDelStudent);//删除记录
- queryListViewItem();
- }catch(SQLExceptione){
- e.printStackTrace();
- }
- }
- });
- builder2.setNegativeButton("取消",newDialogInterface.OnClickListener(){
- @Override
- publicvoidonClick(DialogInterfacedialog,intwhich){
- dialog.dismiss();
- }
- });
- builder2.show();
- }
- classStudentsAdapterextendsBaseAdapter{
- privateList<Student>listStu;
- publicStudentsAdapter(List<Student>students){
- super();
- this.listStu=students;
- }
- @Override
- publicintgetCount(){
- returnlistStu.size();
- }
- @Override
- publicStudentgetItem(intposition){
- returnlistStu.get(position);
- }
- @Override
- publiclonggetItemId(intposition){
- returnposition;
- }
- @Override
- publicViewgetView(intposition,ViewconvertView,ViewGroupparent){
- ViewHolderholder;
- if(convertView==null){
- LayoutInflatermInflater=(LayoutInflater)mContext
- .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
- convertView=mInflater.inflate(R.layout.studentitem,null);
- holder=newViewHolder();
- holder.tvNO=(TextView)convertView.findViewById(R.id.itemno);
- holder.tvName=(TextView)convertView.findViewById(R.id.itemname);
- holder.tvScore=(TextView)convertView.findViewById(R.id.itemscore);
- convertView.setTag(holder);
- }else{
- holder=(ViewHolder)convertView.getTag();
- }
- StudentobjStu=listStu.get(position);
- holder.tvNO.setText(objStu.getStuNO());
- holder.tvName.setText(objStu.getName());
- holder.tvScore.setText(String.valueOf(objStu.getScore()));
- returnconvertView;
- }
- }
- staticclassViewHolder{
- TextViewtvNO;
- TextViewtvName;
- TextViewtvScore;
- }
- }
更多相关文章
- Android(安卓)自定义AlertDialog 去黑边终极解决方案(亲测有效!)
- Hello, Android(安卓)Studio!
- Android实现界面跳转功能
- Android-VideoView播放网络视频
- First Android(安卓)application
- Android(安卓)AIDL 的简单使用
- Android开发:常用Dialog的几种格式显示,普通,列表,单选,多选,可编辑di
- Android(安卓)day_3 (登录案例 SharedPreferences 的使用)
- android01