Android 对listview数据的增删改查.doc_第1页
Android 对listview数据的增删改查.doc_第2页
Android 对listview数据的增删改查.doc_第3页
Android 对listview数据的增删改查.doc_第4页
Android 对listview数据的增删改查.doc_第5页
已阅读5页,还剩5页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

图-1 android 实现对listview数据的增删改查主要界面本例只有一个UpdateListViewActivity类,相关的操作以及功能均在一个界面完成。对listview 数据的增删改查,实质就是对填充的数组(填充的数据)进行重新修改后,再次调用notifyDataSetChanged()方法进行更新。尽管如此,对数据使用起来还是比较生疏,下面的例子能加强对listview数据更新的理解。UpdateListViewActivity.java类是程序的唯一的一个类,实现了对listview增删改查的操作,代码比较多,但理解并不比较复杂。1.UpdateListViewActivity.java1. packagecom.updatelistview.main; 2. 3. importjava.util.ArrayList; 4. importjava.util.HashMap; 5. 6. importandroid.app.Activity; 7. importandroid.app.AlertDialog; 8. importandroid.content.Context; 9. importandroid.content.DialogInterface; 10. importandroid.os.Bundle; 11. importandroid.view.LayoutInflater; 12. importandroid.view.View; 13. importandroid.view.View.OnClickListener; 14. importandroid.widget.Button; 15. importandroid.widget.EditText; 16. importandroid.widget.LinearLayout; 17. importandroid.widget.ListView; 18. importandroid.widget.SimpleAdapter; 19. importandroid.widget.Toast; 20. 21. publicclassUpdateListViewActivityextendsActivity 22. /控件23. privateButtonaddBtn; 24. privateButtondeleteBtn; 25. privateButtoneditBtn; 26. privateButtonqueryBtn; 27. privateListViewlistview; 28. /数组29. privateSimpleAdapterlistItemAdapter; 30. privateArrayListHASHMAPlistItem=null; 31. 32. /*Calledwhentheactivityisfirstcreated.*/33. Override34. publicvoidonCreate(BundlesavedInstanceState) 35. super.onCreate(savedInstanceState); 36. setContentView(R.layout.main); 37. 38. /获取控件39. addBtn=(Button)findViewById(R.id.add_id); 40. deleteBtn=(Button)findViewById(R.id.delete_id); 41. editBtn=(Button)findViewById(R.id.edit_id); 42. queryBtn=(Button)findViewById(R.id.query_id); 43. listview=(ListView)findViewById(R.id.show_result); 44. 45. /初始化数据46. init(); 47. 48. /设置控件事件监听49. addBtn.setOnClickListener(addClick); 50. deleteBtn.setOnClickListener(deleteClick); 51. editBtn.setOnClickListener(editClick); 52. queryBtn.setOnClickListener(queryClick); 53. 54. 55. 56. /添加事件响应57. OnClickListeneraddClick=newOnClickListener() 58. 59. Override60. publicvoidonClick(Viewv) 61. /TODOAuto-generatedmethodstub62. 63. /加载输入框的布局文件64. LayoutInflaterinflater=(LayoutInflater)UpdateListViewActivity.this65. .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 66. finalLinearLayoutlayout=(LinearLayout)inflater.inflate( 67. R.layout.input_add,null); 68. 69. /弹出的对话框70. 71. newAlertDialog.Builder(UpdateListViewActivity.this) 72. /*弹出窗口的最上头文字*/73. .setTitle(添加一条数据) 74. /*设置弹出窗口的图式*/75. .setIcon(android.R.drawable.ic_dialog_info) 76. /*设置弹出窗口的信息*/77. .setMessage(请输入添加的内容) 78. .setView(layout) 79. .setPositiveButton(确定, 80. newDialogInterface.OnClickListener() 81. publicvoidonClick( 82. DialogInterfacedialoginterface,inti) 83. 84. EditTextinputStringr=(EditText)layout 85. .findViewById(R.id.input_add_string); 86. 87. Stringstr=inputStringr.getText() 88. .toString(); 89. 90. if(str=null|str.equals() 91. 92. Toast.makeText(getApplicationContext(), 93. 添加的内容不能为空,Toast.LENGTH_SHORT) 94. .show(); 95. else 96. HashMapmap=newHashMap(); 97. map.put(viewspot,str); 98. map.put(add,R.drawable.right); 99. listItem.add(0,map); 100. /如果在前面添加一条数据添加101. /listItem.add(map);102. listItemAdapter.notifyDataSetChanged(); 103. Toast.makeText( 104. UpdateListViewActivity.this, 105. 添加的一条数据为:+str+, 106. Toast.LENGTH_SHORT).show(); 107. 108. 109. 110. 111. ) 112. .setNegativeButton(取消, 113. newDialogInterface.OnClickListener()/*设置跳出窗口的返回事件*/114. publicvoidonClick( 115. DialogInterfacedialoginterface,inti) 116. Toast.makeText(UpdateListViewActivity.this, 117. 取消了删除数据,Toast.LENGTH_SHORT) 118. .show(); 119. 120. 121. ).show(); 122. 123. 124. ; 125. 126. /删除事件响应127. OnClickListenerdeleteClick=newOnClickListener() 128. 129. Override130. publicvoidonClick(Viewv) 131. /TODOAuto-generatedmethodstub132. 133. /*134. *listItem.clear();清空所有数据135. *136. */137. 138. /*139. *listItem.clear();140. *listItemAdapter.notifyDataSetChanged();141. */142. 143. /加载输入框的布局文件144. LayoutInflaterinflater=(LayoutInflater)UpdateListViewActivity.this145. .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 146. finalLinearLayoutlayout=(LinearLayout)inflater.inflate( 147. R.layout.input_delete,null); 148. 149. /弹出的对话框150. 151. newAlertDialog.Builder(UpdateListViewActivity.this) 152. /*弹出窗口的最上头文字*/153. .setTitle(删除一条数据) 154. /*设置弹出窗口的图式*/155. .setIcon(android.R.drawable.ic_dialog_info) 156. /*设置弹出窗口的信息*/157. .setMessage(请输入删除的索引) 158. .setView(layout) 159. .setPositiveButton(确定, 160. newDialogInterface.OnClickListener() 161. publicvoidonClick( 162. DialogInterfacedialoginterface,inti) 163. 164. EditTextinputNumber=(EditText)layout 165. .findViewById(R.id.input_delete_number); 166. 167. Stringstr=inputNumber.getText() 168. .toString(); 169. 170. if(str=null|str.equals() 171. 172. Toast.makeText(getApplicationContext(), 173. 请输入一个数字,Toast.LENGTH_SHORT) 174. .show(); 175. else 176. intnumber=Integer.valueOf(str); 177. 178. intsize=listItem.size(); 179. 180. /判断数字是否超出数组索引范围181. if(number=size) 182. Toast.makeText( 183. getApplicationContext(), 184. 没有找到删除的数据索引, 185. Toast.LENGTH_SHORT).show(); 186. 187. else 188. 189. Stringvalue=listItem.get(number) 190. .toString(); 191. listItem.remove(number); 192. listItemAdapter 193. .notifyDataSetChanged(); 194. Toast.makeText( 195. UpdateListViewActivity.this, 196. 删除的数据为:+value+, 197. Toast.LENGTH_SHORT).show(); 198. 199. 200. 201. 202. 203. ) 204. .setNegativeButton(取消, 205. newDialogInterface.OnClickListener()/*设置跳出窗口的返回事件*/206. publicvoidonClick( 207. DialogInterfacedialoginterface,inti) 208. Toast.makeText(UpdateListViewActivity.this, 209. 取消了删除数据,Toast.LENGTH_SHORT) 210. .show(); 211. 212. 213. ).show(); 214. 215. 216. ; 217. /修改事件响应218. OnClickListenereditClick=newOnClickListener() 219. 220. Override221. publicvoidonClick(Viewv) 222. /TODOAuto-generatedmethodstub223. /加载输入框的布局文件224. LayoutInflaterinflater=(LayoutInflater)UpdateListViewActivity.this225. .getSystemService(Context.LAYOUT_INFLATER_SERVICE); 226. finalLinearLayoutlayout=(LinearLayout)inflater.inflate( 227. R.layout.input_edit,null); 228. 229. /弹出的对话框230. 231. newAlertDialog.Builder(UpdateListViewActivity.this) 232. /*弹出窗口的最上头文字*/233. .setTitle(修改一条数据) 234. /*设置弹出窗口的图式*/235. .setIcon(android.R.drawable.ic_dialog_info) 236. /*设置弹出窗口的信息*/237. .setMessage(请输入修改的索引及内容) 238. .setView(layout) 239. .setPositiveButton(确定, 240. newDialogInterface.OnClickListener() 241. publicvoidonClick( 242. DialogInterfacedialoginterface,inti) 243. 244. EditTextinputEditNumber=(EditText)layout 245. .findViewById(R.id.input_edit_number); 246. 247. StringnumberStr=inputEditNumber 248. .getText().toString(); 249. 250. EditTextinputEditString=(EditText)layout 251. .findViewById(R.id.input_edit_string); 252. 253. StringeditStr=inputEditString.getText() 254. .toString(); 255. 256. if(numberStr=null257. |numberStr.equals() 258. 259. Toast.makeText(getApplicationContext(), 260. 请输入要修改的索引,Toast.LENGTH_SHORT) 261. .show(); 262. else 263. intnumber=Integer.valueOf(numberStr); 264. 265. intsize=listItem.size(); 266. 267. /判断数字是否超出数组索引范围268. if(number=size) 269. Toast.makeText( 270. getApplicationContext(), 271. 没有找到修改的数据索引, 272. Toast.LENGTH_SHORT).show(); 273. 274. else 275. 276. HashMapmap=newHashMap(); 277. map.put(viewspot,editStr); 278. map.put(add,R.drawable.right); 279. 280. listItem.set(number,map); 281. listItemAdapter 282. .notifyDataSetChanged(); 283. 284. Toast.makeText( 285. UpdateListViewActivity.this, 286. 数据修改为:+editStr+, 287. Toast.LENGTH_SHORT).show(); 288. 289. 290. 291. 292. 293. ) 294. .setNegativeButton(取消, 295. newDialogInterface.OnClickListener()/*设置跳出窗口的返回事件*/296. publicvoidonClick( 297. DialogInt

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论