版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
大话企业级Android开发·第十四部本说明 《大话企业级Adrid开发》是国士为了方便中国Andoid开发者,推动Andoid企业级应用开发,特投入大量心血撰写的书籍,并在网络上免费发布,希望为移动互联网和智能时代贡献绵薄之力!所有相关文档版权均属国士所有。本是由国士参考文档,综合市面相关书籍,经过充分的吸收分享,特采用定稿一部分就发布一部分的连载方式发布。读者可以在本博客获取内容。 国士,将此文档及其衍生作品以标准(纸质)书籍形式本文档受有关法律的保护,对本文档内容的任何同意的和行为,将导致相应的。国士同意,任何团体及个人不能用此牟利,违者。但是:在不收取其他人费用的前提下,您可以自由此文档,但必须保证信息、文档及其自带标示的完整性。如果对该文档有任何疑问或者建议,请进入博uohdrd士后附联系方式《大话企业级Android开发》的及完整内容会在国士博客定期更新,请国士博客/guoshiandroid/获取更新内容关于我们(国士)是一支专注于Adrod平台企业级应用开发的技术团队,对多等多户NS、联网发展提供解决方案和技术支持,为企业提供Adrod我们尤其擅长于提供从Android客户端到服务端的一站式解决方案和技术支持,服务端可以采用JavaEE,也可以采用轻量级流行的LAMP技术体系。目前,研发出了比KU6、优酷更加强大和完善的Android 多客户端软目前,我们正在务实而卓有成效的与音等多、门户、SNS、、电子商务等传统网络服务商合作,发展迅速,渴望有志之士的加入,和我们一起为成为世界最好的Android软件开发和咨询、培训公司而奋斗,为移动互联网和智能时代贡献力量!们:博客 事:到现在我们都没有使用到事务,但是在有一些情况下,比如要同时执行好多条操作数据库的语句,这些语句一起成功,或者一起失败,此时就需事务控制。如果我们需要事务,那么该如何做呢?在务类SricsaeSQ,这SQpublicvoidsaves(){Databasedb=db.execSQL("insert (name,age)values(?,?)",newObject[]{"db.execSQL("insert (name,age)values(?,?)",newObject[]{"}SQSQpublicvoidDatabasedbdatabaseHelper.getWritableDatabase();db.beginTransaction();//开始事务{db.execSQL("insertinto (name,age)values(?,?)",newObject[]{"db.execSQL("insertinto (name,age)values(?,?)",newObject[]{"db.setTransactionSuccessful();//设置事务成功标}catch(Exception{}db.endTransaction();//事务结}加入事务之后,如果第二条SQL语句有错误,变为db.execSQL("insert dddf(name,age)values(?,?)",new ServiceTest测试类中加入方法,测试是否可以加入数据,代码如下publicvoidtestSavesthrowsThrowable{ Service=new//传入上下}执行testSaves()方法测试,结果显示如图3-图3-然后执行testGetScrollData()方法,查看是否有数据“”,如图3-图3-我们发现“”的数据没有入数据库ListView:大致博士,您把数据库的操作和测试,都讲完了,但是数据如何在上显示出来呢?有没有像列表那类东西?大致:孺子可教。对于数据的显示,我们可以这个时候就会用到ListView显示控件,它的显示风格如图3-29图3-Litiew的Litie不管,它将数据照我们定的风格去行行显示每一行的格要怎么呢?3-0编 item.xml文 图3-<?xmlversion="1.0"encoding="utf- >android:layout_toRightOf="@id/ >>编写main.xml为Atvimanxmminxl入Litie >这个时候我们就需要为Lstiw绑定数据,Litiew中有一个seAape()方法设置适配器,也就是说数据是通过适配器传入Litiew的。在Adrid系统中我们常用的适配器有AraAdper,我们这次用到的适配器Smledptr,以及采用查询结果集作为数据来源的SmleusoAateSmpedptpublicclassActivityextendsActivity/**Calledwhentheactivityisfirstcreated.privatefinalstaticString privateListViewprivateService publicvoidonCreate(BundleistView= HashMap<String,String>title=newHashMap<String,String>(); id","编号title.put("name","title.put("age","");SimpleAdapteradapter=newSimpleAdapter(data, item,new id","name",newint[]{R.id. }}第四个参数:表示根据title中的key获取title中的值第五个参数:表示title中的数据显示所对应的TextView,如图3-3-运行Activity的界面显示为图3-3-图333只是显示标题,并没有绑定数据,如何显示内容呢?那就得用到业务类SricgtcrlDtadtpublicclassActivityextendsActivity/**Calledwhentheactivityisfirstcreated.privatefinalstaticStringTAG="Activity";privateListViewlistView;privateService publicvoidonCreate(BundlelistView=(ListView)findViewById(R.id. Service=newService(this); s= Service.getScrollData(0,10);//前十条数据List<HashMap<String,String>>data=newHashMap<String,String>titlenewHashMap<String,String>(); title.put("name","title.put("age",""); for(: HashMap<String,String>map=newHashMap<String,String>(); id",String.valueOf( .getName());map.put("age", .getAge()));data.add(map);}}
SimpleAdapteradapter=newSimpleAdapter(Activity.this,data,R.layout. item,newString[]{" id","name",newint[]{R.id. }运行界面效果如图3-3-通过图3-34发现,数据已经列出了,这个列表的每一行是可以点击的如图3-3-但是,我们怎么知道点击的是哪行呢?当我们点击ListView每一行的时会触发一listView.setOnItemClickListener(new{publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){//TODOAuto-generatedmethod}当我们点击Litie某一项之后,系统会调用oIemlckpaet上面的LstiViw33poiion参数aapeiLitie图3-poiioioItmlckLog.i("positionandid","result="+(加入过滤器“position id”,单击列表的一项如图3-35,运行结果如图3-图3-Position和id两个元素在本次应用中是相等的,如何获取单击那项的内容呢?publicvoidonItemClick(AdapterView<?>parent,Viewintposition,longid)//TODOAuto-generatedmethodListViewlistView=(ListView)parent;HashMap<String,String>itemData=(HashMap<String, id=itemData.get(" Stringname=itemData.get("name");Stringage=Log.i(TAG,"className="+//打印view的类名Log.i(TAG," id+"name="+name+"age"+age);Log.i(TAG,"result="+(position==id));}运行本应用的方法,如图3-图3-运行成功之后,如图3-35点击列表的一项,出现的结果如图3-图3-通过运行结果,我们得到了被单击元素的值和视图的布局RelativeLayout,并且知道position和id相等。上述ListView的使用方法,在实际应用中会经常用到,所以大家一掌握如图3-40,所选择的内容不属于数据项,它只是一个标题,我们可以将它固定放到 >>>><?xmlversion="1.0"encoding="utf-<string o <stringname="app_name">数据库应用<stringname="positionid">编号<stringname="name"><stringname="age">图3-然后,把Activity中加入标题的代码去掉,就变为如下代码publicclassActivityextendsActivity/**Calledwhentheactivityisfirstcreated.privatefinalstaticStringTAG=" privateListViewlistView;privateService publicvoidonCreate(BundlelistView= Service=new s= Service.getScrollData(0,10);//前十条数据List<HashMap<String,String>>data=newfor( HashMap<String,String>map=newHashMap<String,String>(); id",String.valueOf( map.put("age",String.valueOf(
SimpleAdapteradapter=newSimpleAdapter(Activity.this,data,R.layout. item,newString[]{" id","name",newint[]{R.id. listView.setOnItemClickListener(newAdapterView.OnItemClickListener()publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){//TODOAuto-generatedmethodListViewlistView=(ListView)parent;HashMap<String,String>itemData=(HashMap<String, id=itemData.get(" Stringname=itemData.get("name");Stringage=Log.i(TAG,"className="+view.getClass().getName());//打印的类
Log.i(TAG," id+"name="+name+"age"+age);Log.i(TAG,"result="+(position==id));}}}运行本应用,结果如图3-图3-数据和标题已经分开,标题已经不能被单击选中了使用SimpleCursorAdapter绑定除了前面使用SipeAater绑定数据,我们还可以使用SipeCroAdperSipeCrordpeCusr就可以,然后将Cror赋给SipeCrordperSipeCrordper去实现数据的绑定。首先,在业务类Service中加入返回游标的方法getRwSrollData(),代码如:publicCursorgetRawScrollData(intstartResult,maxResult){List<> s=newArrayList<>();returndatabase.rawQuery("select id,name,agefrom limit?,?",newString[]{String.valueOf(startResult),}然后在Activity类中使用SimpleCursorAdapter绑定数据,代码如下publicclassActivityextendsActivity/**Calledwhentheactivityisfirstcreated.privatefinalstaticStringTAG=" privateListViewlistView;private publicvoidonCreate(BundlelistView=(ListView)findViewById(R.id. Service=newService(this);/*SimpleCursorAdapter绑定数据Cursorcursor= Service.getRawScrollData(010);//得到游标SimpleCursorAdapteradapter=newSimpleCursorAdapter(this, item,newString[]{" id","name","age"},newint[]{R.id. R.,R.id.age});listView.setOnItemClickListener(new{publicvoidonItemClick(AdapterView<?>parent,Viewview,intposition,longid){//TODOAuto-generatedmethodListViewlistView=(ListView)parent;HashMap<String,String>itemData=(HashMap<String, id=itemData.get(" Stringname=itemData.get("
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2024年度企业办公设备及用品采购框架合同
- 电视接收器电视机市场发展预测和趋势分析
- 2024年度教育培训合同标的为课程开设与师资派遣
- 2024年度特许经营及技术服务合同标的详细描述
- 2024年度成都二手房屋买卖合同
- 2024年度家具行业物流运输合同
- 2024年度版权转让合同著作财产权变动
- 2024年度图书租赁合同:某大学图书馆与出版社之间的图书租赁
- 跨运车市场环境与对策分析
- 浮式生产储卸油装置市场需求与消费特点分析
- 水平三(五年级)体育《障碍跑》教学设计及教案
- 卒中中心诊疗规范手册
- 韩国美妆行业市场分析报告
- 管理哲学导论(第3版) 课件 第六章 组织的结构与行为
- 英语拓展模块 课件 Unit 4 Beauty Is About How You Feel
- 低蛋白血症的护理查房
- 解决方案部规章制度
- 河海大学开题报告
- 【建筑学课件】建筑设计的基本要素与设计流程
- GB/T 43370-2023民用无人机地理围栏数据技术规范
- 电梯安全质量管理体系建立
评论
0/150
提交评论