StudentListActivity.java源码:

  1. packagecom.andyidea.ormsqlite;
  2. importjava.sql.SQLException;
  3. importjava.util.List;
  4. importAndroid.app.AlertDialog;
  5. importAndroid.content.Context;
  6. importAndroid.content.DialogInterface;
  7. importAndroid.content.Intent;
  8. importAndroid.os.Bundle;
  9. importAndroid.view.ContextMenu;
  10. importAndroid.view.ContextMenu.ContextMenuInfo;
  11. importAndroid.view.LayoutInflater;
  12. importAndroid.view.Menu;
  13. importAndroid.view.MenuItem;
  14. importAndroid.view.View;
  15. importAndroid.view.ViewGroup;
  16. importAndroid.widget.AdapterView.AdapterContextMenuInfo;
  17. importAndroid.widget.BaseAdapter;
  18. importAndroid.widget.ListView;
  19. importAndroid.widget.TextView;
  20. importcom.andyidea.bean.Student;
  21. importcom.andyidea.db.DatabaseHelper;
  22. importcom.j256.ormlite.Android.apptools.OrmLiteBaseActivity;
  23. importcom.j256.ormlite.dao.Dao;
  24. publicclassStudentListActivityextendsOrmLiteBaseActivity<DatabaseHelper>{
  25. privateContextmContext;
  26. privateListViewlvStudents;
  27. privateDao<Student,Integer>stuDao;
  28. privateList<Student>students;
  29. privateStudentsAdapteradapter;
  30. privateStudentmStudent;
  31. privatefinalintMENU_VIEW=Menu.FIRST;
  32. privatefinalintMENU_EDIT=Menu.FIRST+1;
  33. privatefinalintMENU_DELETE=Menu.FIRST+2;
  34. privateintposition;
  35. @Override
  36. publicvoidonCreate(BundlesavedInstanceState){
  37. super.onCreate(savedInstanceState);
  38. setContentView(R.layout.students);
  39. mContext=getApplicationContext();
  40. lvStudents=(ListView)findViewById(R.id.stulist);
  41. registerForContextMenu(lvStudents);//注册上下文菜单
  42. queryListViewItem();
  43. adapter=newStudentsAdapter(students);
  44. lvStudents.setAdapter(adapter);
  45. }
  46. @Override
  47. publicvoidonCreateContextMenu(ContextMenumenu,Viewv,
  48. ContextMenuInfomenuInfo){
  49. if(v==lvStudents)
  50. position=((AdapterContextMenuInfo)menuInfo).position;
  51. menu.add(0,MENU_VIEW,0,"查看");
  52. menu.add(0,MENU_EDIT,0,"编辑");
  53. menu.add(0,MENU_DELETE,0,"删除");
  54. super.onCreateContextMenu(menu,v,menuInfo);
  55. }
  56. @Override
  57. publicbooleanonContextItemSelected(MenuItemitem){
  58. switch(item.getItemId()){
  59. caseMENU_VIEW:
  60. viewListViewItem(position);
  61. break;
  62. caseMENU_EDIT:
  63. editListViewItem(position);
  64. break;
  65. caseMENU_DELETE:
  66. deleteListViewItem(position);
  67. break;
  68. default:
  69. break;
  70. }
  71. returnsuper.onContextItemSelected(item);
  72. }
  73. /**
  74. *查询记录项
  75. */
  76. privatevoidqueryListViewItem(){
  77. try{
  78. stuDao=getHelper().getStudentDao();
  79. //查询所有的记录项
  80. students=stuDao.queryForAll();
  81. }catch(SQLExceptione){
  82. e.printStackTrace();
  83. }
  84. }
  85. /**
  86. *查看记录项
  87. *@paramposition
  88. */
  89. privatevoidviewListViewItem(intposition){
  90. mStudent=students.get(position);
  91. Intentintent=newIntent();
  92. intent.setClass(mContext,MainActivity.class);
  93. intent.putExtra("action","viewone");
  94. intent.putExtra("entity",mStudent);
  95. startActivity(intent);
  96. }
  97. /**
  98. *编辑记录项
  99. */
  100. privatevoideditListViewItem(intposition){
  101. mStudent=students.get(position);
  102. Intentintent=newIntent();
  103. intent.setClass(mContext,MainActivity.class);
  104. intent.putExtra("action","edit");
  105. intent.putExtra("entity",mStudent);
  106. startActivity(intent);
  107. }
  108. /**
  109. *删除记录项
  110. *@paramposition
  111. */
  112. privatevoiddeleteListViewItem(intposition){
  113. finalintpos=position;
  114. AlertDialog.Builderbuilder2=newAlertDialog.Builder(StudentListActivity.this);
  115. builder2.setIcon(Android.R.drawable.ic_dialog_alert)
  116. .setTitle("警告")
  117. .setMessage("确定要删除该记录");
  118. builder2.setPositiveButton("确定",newDialogInterface.OnClickListener(){
  119. @Override
  120. publicvoidonClick(DialogInterfacedialog,intwhich){
  121. StudentmDelStudent=(Student)lvStudents.getAdapter().getItem(pos);
  122. try{
  123. stuDao.delete(mDelStudent);//删除记录
  124. queryListViewItem();
  125. }catch(SQLExceptione){
  126. e.printStackTrace();
  127. }
  128. }
  129. });
  130. builder2.setNegativeButton("取消",newDialogInterface.OnClickListener(){
  131. @Override
  132. publicvoidonClick(DialogInterfacedialog,intwhich){
  133. dialog.dismiss();
  134. }
  135. });
  136. builder2.show();
  137. }
  138. classStudentsAdapterextendsBaseAdapter{
  139. privateList<Student>listStu;
  140. publicStudentsAdapter(List<Student>students){
  141. super();
  142. this.listStu=students;
  143. }
  144. @Override
  145. publicintgetCount(){
  146. returnlistStu.size();
  147. }
  148. @Override
  149. publicStudentgetItem(intposition){
  150. returnlistStu.get(position);
  151. }
  152. @Override
  153. publiclonggetItemId(intposition){
  154. returnposition;
  155. }
  156. @Override
  157. publicViewgetView(intposition,ViewconvertView,ViewGroupparent){
  158. ViewHolderholder;
  159. if(convertView==null){
  160. LayoutInflatermInflater=(LayoutInflater)mContext
  161. .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
  162. convertView=mInflater.inflate(R.layout.studentitem,null);
  163. holder=newViewHolder();
  164. holder.tvNO=(TextView)convertView.findViewById(R.id.itemno);
  165. holder.tvName=(TextView)convertView.findViewById(R.id.itemname);
  166. holder.tvScore=(TextView)convertView.findViewById(R.id.itemscore);
  167. convertView.setTag(holder);
  168. }else{
  169. holder=(ViewHolder)convertView.getTag();
  170. }
  171. StudentobjStu=listStu.get(position);
  172. holder.tvNO.setText(objStu.getStuNO());
  173. holder.tvName.setText(objStu.getName());
  174. holder.tvScore.setText(String.valueOf(objStu.getScore()));
  175. returnconvertView;
  176. }
  177. }
  178. staticclassViewHolder{
  179. TextViewtvNO;
  180. TextViewtvName;
  181. TextViewtvScore;
  182. }
  183. }
【6】成功运行程序的截图效果:

更多相关文章

  1. Android(安卓)自定义AlertDialog 去黑边终极解决方案(亲测有效!)
  2. Hello, Android(安卓)Studio!
  3. Android实现界面跳转功能
  4. Android-VideoView播放网络视频
  5. First Android(安卓)application
  6. Android(安卓)AIDL 的简单使用
  7. Android开发:常用Dialog的几种格式显示,普通,列表,单选,多选,可编辑di
  8. Android(安卓)day_3 (登录案例 SharedPreferences 的使用)
  9. android01

随机推荐

  1. Android(安卓)Canvas清屏失效
  2. lobiner 关于android中的sqlite数据库操
  3. android studio编写运行java main的三种
  4. 【安卓笔记】android客户端向tomcat服务
  5. Android(安卓)底层开发例子一
  6. Android(安卓)Room Entity使用
  7. 说说Android的广播(6) - 广播消息的接收
  8. cocos2dx - android环境配置及编译
  9. Android后台开启服务默默拍照
  10. Android(安卓)模拟器分辨率