交友网站系统设计与开发_第1页
交友网站系统设计与开发_第2页
交友网站系统设计与开发_第3页
交友网站系统设计与开发_第4页
交友网站系统设计与开发_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

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

文档简介

论文题目交友网站系统设计与开发目录1 绪论 51.1 发展趋势 51.2 可行性分析 61.3 基本内容 62 开发环境的安装和配置 72.1 开发包及其工具的介绍 72.2 Android开发平台搭建步骤: 82.3 硬件环境 92.4 软件环境 103 需求分析 103.1 功能需求 103.1.1 趣味性的增加: 103.1.2 图片、视频播放: 103.1.3 回收站: 103.2 性能需求 103.2.1 响应时间 103.2.2 安全性 114 概要设计 114.1 系统总体流程图 114.2 各个模块介绍 114.2.1 主界面模块 114.2.2 菜单模块 124.3 数据库表的设计 125 记事本详细设计 135.1 布局设计 135.1.1 页面布局-主界面 135.2 功能设计 145.2.1 开始游戏 145.2.2 浏览记事本 215.2.3 菜单项-背景图片 215.2.4 菜单项-设置 275.2.5 菜单项-返回与结束游戏 286 系统测试 306.1 开始测试 306.2 继续测试 326.3 结束测试 326.4 背景 336.5 设置 337 总结 34参考文献 35致谢 36摘要随着信息化社会的发展,Android智能产品已日益成为越来越多的人们选择的移动终端产品。伴随着Android智能手机与平板电脑已经在我们生活大量的使用,越来越多的基于Android开发平台的应用也随之出现。本次毕业设计主要是基于Android平台的android技术,Java语言,程序设计环境是Eclipse+AndroidSDK。轻量级数据库SQLite数据库+文件储存,主要存放一些文字信息以及图片。功能方面主要在传统游戏基础上实现游戏的流畅、稳定与新意。在本次软件设计中,用到了Android平台提供的Adapter适配器,软件中诸多的功能,都是通过继承适配器来适配页面上所要展示的基本信息,然后就是通过统一页面的色调,整顿整个界面风格。软件的主要目标就是解决现在的人们对丰富生活的娱乐需求。关键词:Android;note绪论发展趋势随着3G应用的不断开发推广,用户会越来越需要更加个性化、优质化的多媒体数据服务,用户希望能够随时、随地无缝利用3G网络进行办公、网上交易、游戏娱乐、欣赏影视节目、收听和下载音乐等。根据观察,在不久的将来,移动手机终端将会在以下若干方面具有新的发展。

首先,提供智能提醒服务,手机能够与用户实现密切配合,并监控用户的个性化设置(保持在本地或者云端),当重要时间点或关键事物需要用户注意时,手机会向用户发出“提醒”服务,服务包括日程提醒、交通状况、最佳行车路线、最佳泊位、优惠活动、实时新闻、体育赛事、天气情况、股市行情、好友活动、亲友生日等。

其次,提供虚拟现实体验,手机可以借助传感器、周边设备了解到您的身边环境,并根据收集到的信息,智能的为您提供有用的信息,如在网络世界养的宠物,可以借助音频设备表达叫声,借助马达和位置传感器等传递其跳、跃等行为信息;也可以在用户购物时,提供相关的同类产品价格参考,提醒用户附近的那个卖场更物美价廉;根据实际场景,为用户及时提供正在操控的产品的使用方法提醒。

接着,发挥物联网的优势,借助无处不在的传感器,可以感知并分享到周围世界的海量信息,这些信息将在“云端”得到整合,帮助用户及时、准确的获得气息信息、交通路况。另外借助物联网,用户间可以方便、快速的分享资源,协助和交互。如进行端到端的多人游戏、照片分享、书籍分享、音乐分享等。

然后,作为经济工具,在交通或者信息不发达的情况下,帮助用户找到最佳的市场,获得有价值的帮助信息,帮助用户从事的经济活动的收益率。

最后,更加智能、安全的设备,随着智能手机的不断普及和更加智能,手机软件的更新、升级将会变得越发简单,并会为用户提供工具或信息,让用户有能力和权力决策那些内容可以浏览、下载或分享。在安全性上也将更加出色,能够十分有效的帮助用户进行获取到的内容的管理,保护用户的个人隐私和基于手机的金融活动如电子钱包、在线支付、在线贸易等。可行性分析技术可行性本项目仅d需要一台装有Myeclipse及配置好android开发环境的计算机即可,对计算机本身有一定的要求,它可以使用windowsxp及其以上版本,macos,linux等操作系统。经济可行性由于本软件开发只有一个单个人,一台电脑就行,基本不需要太大的成本。在经济上完全可行。操作可行性界面设计时充分考虑用户的习惯以及手机方面的局限性,程序必须要很简单;本程序只涉及到开发环境配置,安卓组件的熟悉,以及安卓平台上的数据存储。并没有太大的难度,所以,该项目完全有可操作性。基本内容基本内容是在android手机平台下,研究与开发记事本软件。具体要设计与实现的功能是:设计实现“开始游戏”,“继续游戏”,“游戏设置”,“结束游戏”这四个主要的功能模块。分析并解决实现中的若干技术问题,像游戏的选择以及保存方式的选择。进行测试并分析结果。当然五子棋的基本功能,判断胜负,悔棋,结束游戏,认输等功能是首先必须完成的。可以人机对战也可以自由对战。开发环境的安装和配置开发包及其工具的介绍Android以java作为开发语言,jdk是进行java开发时必需的开发包。eclipse是一款非常优秀的开源IDE,在大量插件的“配合”下,完全可以满足从企业级java应用到手机终端java游戏的开发。Google官方也提供了基于Eclipse的android开发插件ADT,所以本软件开发选择Eclipse作为开发IDE。Android是一种基于Linux的自由及开放源代码的操作系统,主要使用于移动设备,如智能手机和平板电脑,由谷歌公司和开放手机联盟领导及开发。尚未有统一中文名称,中国大陆地区较多人使用“安卓”或“安智”Android操作系统最初由AndyRubin开发,主要支持手机。2005年8月由Google收购注资。2007年11月,Google与84家硬件制造商、软件开发商及电信营运商组建开放手机联盟共同研发改良Android系统。随后Google以Apache开源许可证的授权方式,发布了Android的源代码。第一部Android智能手机发布于2008年10月。Android逐渐扩展到平板电脑及其他领域上,如电视,数码相机,游戏机等。2011年第一季度,Android在全球的市场份额首次超过塞班系统,跃居全球第一。2013年的第四季度,Android平台手机的全球市场份额已经达到78.1%。2013年09月24日谷歌开发的操作系统Android在迎来了5岁生日,全世界采用这款系统的设备数量已经达到10亿台。目前还在上升。JDK包含的基本组件包括:javac–编译器,将源程序转成字节码jar–打包工具,将相关的类文件打包成一个文件javadoc–文档生成器,从源码注释中提取文档jdb–debugger,查错工具java–运行编译后的java程序(.class后缀的)appletviewer:小程序浏览器,一种执行HTML文件上的Java小程序的Java浏览器。Javah:产生可以调用Java过程的C过程,或建立能被Java程序调用的C过程的头文件。Javap:Java反汇编器,显示编译类文件中的可访问功能和数据,同时显示字节代码含义。Jconsole:Java进行系统调试和监控的工具Eclipse是一个开放源代码的软件开发项目,专注于为高度集成的工具开发提供一个全功能的、具有商业品质的工业平台。它主要由Eclipse项目、Eclipse工具项目和Eclipse技术项目三个项目组成,具体包括四个部分组成——EclipsePlatform、JDT、CDT和PDE。JDT支持Java开发、CDT支持C开发、PDE用来支持插件开发,EclipsePlatform则是一个开放的可扩展IDE,提供了一个通用的开发平台。它提供建造块和构造并运行集成软件开发工具的基础。EclipsePlatform允许工具建造者独立开发与他人工具无缝集成的工具从而无须分辨一个工具功能在哪里结束,而另一个工具功能在哪里开始。Android开发平台搭建步骤:首先到/downloads/下载Eclipse集成开发环境并且解压,这里推荐下载JavaEE集成版本,可以为平台的搭建省下不少工作。接着再去/javase/downloads/index。jsp站点下载SDK后安装,下载/android/android-sdk-windows-1.5_r1.zip,AndroidSDK1.5后解压。第一步下载工序就结束了。双击Eclipse解压后目录中的eclipse。exe然后启动,选择Eclipse菜单中的Help->InstallNewSoftware->选项卡上的AvailableSoftware,点击右侧的“Add”输入/android/eclipse/后确定,然后在“Workwith”下拉菜单中选择刚才输入的网址。过一会就会出现一个DeveloperTools选项,勾上以后点击Next以后Eclipse会自动网上查找Android开发工具插件,然后找到AndroidDDMS和AndroidDevelopmentTools,选中这两个点击Finish,Eclipse就会自动下载并安装Android插件了,最后会提示重启Eclipse。重启后选择Eclipse菜单中的Windows->Preferences在左侧的Android项目中SDKLocation中填入AndroidSDK解压后的目录,然后点击Apply。在Windows7的系统变量中的path变量中添加一个值,该值指向解压后的AndroidSDK目录下的tools文件夹。硬件环境Android设备,如Android手机或平板电脑:主频在1Ghz及以上,内存为512MB以上,系统版本为Android2.1及以上。在eclipse平台下安卓了安卓androidSDK插件的电脑:Window系统P41.8主频以上电脑软件环境操作系统:Windows7IDE:Eclipse8.0AndroidSDK集成环境需求分析功能需求趣味性的增加:游戏即可自由对战也可人机对战。图片、视频播放:背景图片的更换可以根据自己喜欢的风格可以使用游戏默认的风格。性能需求回收站:可以游戏和直接结束游戏。响应时间一般来说,基于Android开发出来的应用程序响应时间很大程度上依赖于安卓设备的硬件配置和系统版本。因此,用户的安卓设备的硬件配置和系统版本都会对应用程序的响应时间又一定的影响。安全性Android为开源系统本身比较稳定,同时应用程序无需连接网络因此不存在信息网络泄露的风险。概要设计系统总体流程图记事编辑模块侧栏菜单模块主界面开始此次系统设计中,共有四大模块,第一次进入系统时可以看到第一个模块——引导页,进入系统后的页面为主界面模块,左滑可以打开侧栏菜单模块,点击新建图片可以跳到记事编辑模块,共分为四大模块。记事编辑模块侧栏菜单模块主界面开始各个模块介绍主界面模块主界面模块的主体作用是用列表的方式显示用户的记录条目,点击某条即跳转到相应条目的详情页;通过点击左上角菜单图片或从屏幕左边边缘滑动可打开菜单;通过点击右上角新建图标即可打开新建记事本界面。菜单模块流程图如下:开发者、软件版本等信息更换当前游戏背景继续未完成的游戏开始游戏退出设置关于背景更换继续游戏开始游戏菜单项打开菜单开发者、软件版本等信息更换当前游戏背景继续未完成的游戏开始游戏退出设置关于背景更换继续游戏开始游戏菜单项打开菜单数据库表的设计表4-1相册表字段名数据类型是否允许空值主外键noteidinteger允许NullphotoUrltext允许NullnoteDefaultintegerdefault0允许Null表4-2文本表字段名数据类型是否允许空值主外键noteidinteger不允许主键noteNametext允许NullnoteContenttext允许NullnoteDatetimestamp允许NullnoteDefaultintegerdefault0允许NulldeleteDatetimestamp允许Null表4-2视频表字段名数据类型是否允许空值主外键noteidinteger允许NullvideoUrltext允许NullnoteDefaultintegerdefault0允许Null记事本详细设计布局设计页面布局-主界面下图为本次设计软件的主界面布局:图5-2主界面“标题栏”五个按钮:自由对战人机对战游戏的背景更换游戏设置结束游戏“标题栏”的下边就是呈现所有记事条目的,用的是ListView这个控件,它相当于一个容器,把所有记事条目分别放在里面,对应的布局代码如下: <ListViewandroid:id="@+id/lView"android:layout_width="match_parent"android:layout_height="wrap_content"></ListView>功能设计开始游戏点击主界面的开始游戏,开始游戏功能如下:开始新一局游戏第一种直接开始游戏,实现代码如下:publicclassMain2ActivityextendsActivity{ privateScreenscreen; privateContextcontext; privatechessPanpan; @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); //setContentView(R.layout.activity_main2); //setTheme(android.R.style.Theme_Black_NoTitleBar_Fullscreen); pan=newchessPan(this); setContentView(pan); this.context=context; Screenscreen=newScreen(this);//得到屏幕的宽度和高度 screen.getScreenSize(); } @Override publicbooleanonCreateOptionsMenu(Menumenu){ //TODOAuto-generatedmethodstub //returnsuper.onCreateOptionsMenu(menu); menu.add("重新开始"); menu.add("退出游戏"); returntrue; } @Override publicbooleanonMenuItemSelected(intfeatureId,MenuItemitem){ //TODOAuto-generatedmethodstub if(item.getTitle().equals("重新开始")){ pan.chess(); } if(item.getTitle().equals("退出游戏")){ finish(); } returnsuper.onMenuItemSelected(featureId,item); }}第二种就是人机对战,实现代码如下:Intentintent=newIntent( Intent.ACTION_PICK, vider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);//调用android的图库startActivityForResult(intent,2);发送一个意图调用系统图库,选择图片,然后再返回选择图片的路径: if(data!=null){ Uriuri=data.getData(); StringimgPath=uri.getPath(); if(imgPath.indexOf("/external/")!=-1){ String[]proj={MediaStore.Images.Media.DATA}; Cursoractualimagecursor=getActivity().getContentResolver().query(uri,proj,null,null,null); intactual_image_column_index=actualimagecursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); actualimagecursor.moveToFirst(); imgPath=actualimagecursor.getString(actual_image_column_index); } list.add(imgPath); adapter.notifyDataSetChanged(); }把返回的路径添加到集合里,两种方式都是用GridView呈现添加进集合的照片的,GridView里面的数据通过一个继承Adapter自定义适配器来提供,代码如下:publicclassGridViewAdapterextendsBaseAdapter{ privateContextcontext; privateList<String>list; privateDisplayImageOptionsoptions; privateImageLoaderimageLoader; publicGridViewAdapter(Contextcontext,DisplayImageOptions options,List<String>list){ this.context=context; this.list=newArrayList<>(); this.list=list; imageLoader=ImageLoader.getInstance(); this.options=options; } @Override publicintgetCount(){ if(list==null){ return0; } returnlist.size(); } @Override publicObjectgetItem(intposition){ returnlist.get(position); } @Override publiclonggetItemId(intposition){ returnposition; } @Override publicViewgetView(intposition,ViewconvertView, ViewGroupparent){ ViewHolderholder=null; if(convertView==null){ holder=newViewHolder(); convertView=LayoutInflater.from(context).inflate( R.layout.content02_gridview_item,parent,false); holder.iView_item=(ImageView)convertView .findViewById(R.id.iView_item); convertView.setTag(holder); }else{ holder=(ViewHolder)convertView.getTag(); } //将图片显示任务增加到执行池,图片将被显示到ImageView当轮到 此ImageView imageLoader.displayImage("file:///"+list.get(position), holder.iView_item,this.options); returnconvertView; } privateclassViewHolder{ publicImageViewiView_item; }}上面的DisplayImageOptions是设置图片参数的对象:DisplayImageOptionsoptions=newDisplayImageOptions.Builder() .showImageOnLoading(R.drawable.friends_sends_pictures_no)//设置图片Uri为空或是错误的时候显示的图片.showImageForEmptyUri(R.drawable.friends_sends_pictures_no).showImageOnFail(R.drawable.friends_sends_pictures_no) .displayer(newRoundedBitmapDisplayer(20))//设置成圆角图片 .cacheInMemory(true)//设置下载的图片是否缓存在内存中 .cacheOnDisk(true)//设置下载的图片是否缓存在SD卡中 .bitmapConfig(Bitmap.Config.RGB_565) .displayer(newRoundedBitmapDisplayer(20))//设置成圆角图片 .build();这里为了解决由于添加的图片导致切换切换卡顿问题又用到了一个开源库,Universal-Image-Loader,图片异步加载器,使用这个库时,必须要全局初始化这个加载器对象:Filecache=StorageUtils.getOwnCacheDirectory(getApplicationContext(),"Notes/Cache"); config=newImageLoaderConfiguration .Builder(this).discCache(newUnlimitedDiscCache(cache)).build();//自定义缓存路径 ImageLoader.getInstance().init(config);//全局初始化此配置再根据自己需求设置图片参数:options=newDisplayImageOptions.Builder() .showImageOnLoading(R.drawable.friends_sends_pictures_no)//设置图片Uri为空或是错误的时候显示的图片.showImageForEmptyUri(R.drawable.friends_sends_pictures_no).showImageOnFail(R.drawable.friends_sends_pictures_no) .displayer(newRoundedBitmapDisplayer(20))//设置成圆角图片 .cacheInMemory(true)//设置下载的图片是否缓存在内存中 .cacheOnDisk(true)//设置下载的图片是否缓存在SD卡中 .bitmapConfig(Bitmap.Config.RGB_565) .displayer(newRoundedBitmapDisplayer(20))//设置成圆角图片 .build();再通过ImageLoader.getInstance()displayImage(Stringuri,ImageViewimageView,DisplayImageOptionsoptions)这个方法就可以加载图片了背景更换:publicclassMainActivityextendsActivity{ @Override protectedvoidonCreate(BundlesavedInstanceState){ super.onCreate(savedInstanceState); setTheme(android.R.style.Theme_Black_NoTitleBar_Fullscreen); setContentView(R.layout.activity_main); Handlerhandler=newHandler();//消息(过一定时间干什么事情) handler.postDelayed(newLoadMainActivity(),2000); } classLoadMainActivityimplementsRunnable{ @Override publicvoidrun(){ //TODOAuto-generatedmethodstub Intentintent=newIntent(MainActivity.this,Main2Activity.class); startActivity(intent); MainActivity.this.finish(); } }}上述三点完成之后把所有数据放到数据去。浏览记事本背景更换的实现和新建没区别,只是打开的时候去读取数据的数据,再把数据显示,用户还是可以和新建一样,去添加删除数据。菜单项-背景图片此功能为了用户体验使用了一个叫PhotoView的开源库,实现如下:部分布局代码:<com.photoview.PhotoViewandroid:id="@+id/photoView"android:layout_width="fill_parent"android:layout_height="530dp"android:contentDescription="shenlongmodify"/><Galleryandroid:id="@+id/gallery"android:layout_width="fill_parent"android:layout_height="100dp"android:layout_marginBottom="10dp"/>填充数据:privateintpaddingtop;//上下间距 privatebooleanret; privateintrow; privateintcol; privateintscreenWidth; privateintscreenHeight; privateintcounter; privateScreenscreen; privatebooleaniswin; privatechessType[][]fiveChess; privateContextcontext; publicchessPan(Contextcontext){ super(context); //TODOAuto-generatedconstructorstub this.context=context; this.setBackgroundResource(R.drawable.bg); initPosition(); } //初始化绘画间距 publicvoidinitPosition(){ //screenWidth=screen.width; //screenHeight=screen.height; //paddingtop=30;//宽度 row=15; col=14; iswin=false; fiveChess=newchessType[row+1][col+1]; chess(); } //初始化棋盘上的旗子 publicvoidchess(){ counter=1; for(inti=0;i<=row;i++){ for(intj=0;j<=col;j++){ fiveChess[i][j]=chessType.NONE; } } invalidate(); } publicvoidback(intr,intc){ fiveChess[r][c]=chessType.NONE; invalidate(); } @Override publicvoiddraw(Canvascanvas){ //TODOAuto-generatedmethodstub super.draw(canvas); Paintpaint=newPaint(); paint.setColor(Color.BLACK); screenWidth=screen.width; screenHeight=screen.height; paddingtop=screenWidth/15; for(inti=0;i<col;i++){ canvas.drawLine(paddingtop+paddingtop*i,paddingtop,paddingtop +paddingtop*i,paddingtop*row,paint); } for(inti=0;i<row;i++){ canvas.drawLine(paddingtop,paddingtop+paddingtop*i,paddingtop +paddingtop*(col-1),paddingtop+paddingtop*i, paint); } //画棋子 intx; inty; for(inti=0;i<=row;i++){ for(intj=0;j<=col;j++){ if(fiveChess[i][j]==chessType.NONE){ continue; } x=j*paddingtop; y=i*paddingtop; if(fiveChess[i][j]==chessType.BLACK){ paint.setColor(Color.BLACK); } if(fiveChess[i][j]==chessType.WHITE){ paint.setColor(Color.WHITE); } canvas.drawCircle(x,y,paddingtop/2,paint); } } } //判断输赢 publicbooleanisWin(intr,intc){ booleanret=false; intcounterWin=1; //同一条直线上 //向下搜索 for(inti=1;i<5;i++){ if(r+i<=row){ if(fiveChess[r][c]!=fiveChess[r+i][c]){ break; } counterWin++; } } if(counterWin>=5){ ret=true; returnret; } //向上搜索 for(inti=1;i<5;i++){ if(r-i>0){ if(fiveChess[r][c]!=fiveChess[r-i][c]){ break; } counterWin++; } } if(counterWin>=5){ ret=true; returnret; } //向右搜索 counterWin=1; for(inti=1;i<5;i++){ if(c+i<=col){ if(fiveChess[r][c]!=fiveChess[r][c+i]){ break; } counterWin++; } } if(counterWin>=5){ ret=true; returnret; } //向左搜索 for(inti=1;i<5;i++){ if(c-i>0){ if(fiveChess[r][c]!=fiveChess[r][c-i]){ break; } counterWin++; } } if(counterWin>=5){ ret=true; returnret; } counterWin=1; //左斜上搜索 for(inti=1;i<5;i++){ if(r-i>0&&c-i>0){ if(fiveChess[r][c]!=fiveChess[r-i][c-i]){ break; } counterWin++; } } if(counterWin>=5){ ret=true; returnret; } //右斜下搜索 for(inti=1;i<5;i++){ if(r+i<=row&&c+i<=col){ if(fiveChess[r][c]!=fiveChess[r+i][c+i]){ break; } counterWin++; } } if(counterWin>=5){ ret=true; returnret; } counterWin=1; //右斜上搜索 for(inti=1;i<5;i++){ if(r-i>0&&c+i<=col){ if(fiveChess[r][c]!=fiveChess[r-i][c+i]){ break; } counterWin++; } } if(counterWin>=5){ ret=true; returnret; } //左斜下搜索 for(inti=1;i<5;i++){ if(r+i<=row&&c-i>0){ if(fiveChess[r][c]!=fiveChess[r+i][c-i]){ break; } counterWin++; } } if(counterWin>=5){ ret=true; returnret; } returnret; } publicvoidrestart(){ }菜单项-设置从数据库中查出数据:dbhelper=newDBBaseHelper(this); dbWrLite=dbhelper.getReadableDatabase(); cursor=dbWrLite.rawQuery("selectvideoUrlfromvideowherenoteDefault=0",null); list=newArrayList<>(); if(cursor.moveToFirst()){ do{ list.add(cursor.getString(cursor .getColumnIndex(DBBaseHelper.VIDEOURL))); }while(cursor.moveToNext()); }else{ tView.setVisibility(View.VISIBLE); } cursor.close(); dbWrLite.close(); dbhelper.close();ListView呈现查出来的数据,数据适配器和新建时适配器通用。菜单项-返回与结束游戏结束游戏设计思路:在软件的主界面,用户直接结束游戏,那么这条数据就真实的从数据库中抹除。实现如下:@Override publicbooleanonTouchEvent(MotionEventevent){ //TODOAuto-generatedmethodstub floatx=event.getX(); floaty=event.getY(); if(!iswin){ if(x>=paddingtop&&x<col*paddingtop&&y>=paddingtop &&y<=row*paddingtop){ intr=Math.round(y/paddingtop); intc=Math.round(x/paddingtop); if(fiveChess[r][c]==chessType.NONE){ if(counter%2==1){ fiveChess[r][c]=chessType.BLACK; if(isWin(r,c)){ iswin=true; newAlertDialog.Builder(context) .setTitle("提示") .setMessage("黑棋赢") .setPositiveButton( "确定", newDialogInterface.OnClickListener(){ @Override publicvoidonClick( DialogInterfacearg0, intarg1){ //TODOAuto-generated //methodstub } }).show(); } } if(counter%2==0){ fiveChess[r][c]=chessType.WHITE; if(isWin(r,c)){ iswin=true; newAlertDialog.Builder(context) .setTitle("提示") .setMessage("

温馨提示

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

评论

0/150

提交评论