新浪微博Android开发V教案.ppt

上传人:豆**** 文档编号:59796587 上传时间:2022-11-13 格式:PPT 页数:34 大小:1.03MB
返回 下载 相关 举报
新浪微博Android开发V教案.ppt_第1页
第1页 / 共34页
新浪微博Android开发V教案.ppt_第2页
第2页 / 共34页
点击查看更多>>
资源描述

《新浪微博Android开发V教案.ppt》由会员分享,可在线阅读,更多相关《新浪微博Android开发V教案.ppt(34页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、新浪微博Android开发V Still waters run deep.流静水深流静水深,人静心深人静心深 Where there is life,there is hope。有生命必有希望。有生命必有希望新浪微博功能新浪微博功能新浪微博功能新浪微博功能分层实现分层实现UI层层微博中的各个窗体微博中的各个窗体logic层层程序的核心控制调度模块,获取程序的核心控制调度模块,获取UI传递的数据、要传递的数据、要执行的任务,调用微博接口,获得网络数据,返回执行的任务,调用微博接口,获得网络数据,返回消息,刷新消息,刷新(切换切换)UI微博接口层微博接口层(新浪新浪API已封装已封装)网络访问层网

2、络访问层(新浪新浪API已封装已封装)logic层主要类层主要类Task定义程序中的任务定义程序中的任务如:登录,发表新微博,如:登录,发表新微博,获取用户微博,获取用户获取用户微博,获取用户详细信息详细信息int taskIdMap paramsIWeiboActivity接口接口所有窗口实现所有窗口实现init()方法方法完成初始化完成初始化refresh(Objet.args)方方法法完成窗体刷新完成窗体刷新IWeiboActivityMainService完成程序调度完成程序调度接收接收UI层数据层数据(任务任务),完成业务逻辑,返回信息,完成业务逻辑,返回信息,更新更新UI在后台运行

3、在后台运行(继承自继承自Service类类)线程线程(实现实现Runnable接口接口)不断侦听不断侦听UI传过来任务消息传过来任务消息MainService工作流程工作流程MainService启动run()侦听任务UI发出任务newTask(Task t)doTask(Task t)处理业务逻辑,发回更新消息给主线程Handler处理消息队列,调用更新UI方法refresh(mess)MainService成员成员List allActivity保存当前所有保存当前所有Activity,方便切换方便切换List allTask把当前任务加到集合中把当前任务加到集合中MainService中

4、的方法中的方法public static void newTask(Task t)public void doTask(Task t)public void run()public Activity getActivityByName(String name)Hander handleMessage(Message msg)MainService中方法执行顺序中方法执行顺序MainService启动:清单文件中注册startService()启动线程,侦听任务。new Thread()在Oncreate()时UI发出任务newTask(Task t)把当前Activity加入到allActiv

5、ity中doTask(Task t)处理业务逻辑,执行完,移出任务,发回更新消息给主线程Handler处理消息队列,得到要处理的Activity,调用更新UI方法refresh(mess)程序架构程序架构 登录实现登录实现搭建框架搭建框架logic层层创建创建IWeiboActivity创建创建Task创建创建MainServiceUI层层创建创建Logo类类-启动闪屏启动闪屏创建创建Login类类-登录窗体登录窗体创建创建Main类类-程序主窗体程序主窗体(后续需继承自后续需继承自TabActivity)启动全屏启动全屏 /取消标题取消标题 this.requestWindowFeature

6、(Window.FEATURE_NO_TITLE);this.setContentView(R.layout.logo);/取消状态栏取消状态栏 this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,WindowManager.LayoutParams.FLAG_FULLSCREEN);动画加载动画加载-由浅入深由浅入深 ImageView iv=(ImageView)findViewById(R.id.logo);AlphaAnimation aa=new AlphaAnimation(0.1f,1.0f);

7、aa.setDuration(3000);iv.startAnimation(aa);/动画加载完,启动动画加载完,启动Login窗体窗体aa.setAnimationListener(new AnimationListener()/.;登录登录UI登录流程登录流程Login消息传递消息传递onCreate()获取获取Login窗体用户名、密码窗体用户名、密码创建一个任务创建一个任务Task task=new Task(Task.TASK_LOGIN,map);MainService加入任务加入任务MainService.newTask(task);refresh()回调刷新回调刷新Login

8、 UI,登录成功登录成功or失败失败登录成功进入登录成功进入Main窗体窗体MainService处理登录任务处理登录任务run方法,侦听任务方法,侦听任务doTask(t)处理任务处理任务Message mess=handler.obtainMessage();mess.what=task.getTaskId();swtich(task.getTaskId()./根据不同的任务,调用微博接根据不同的任务,调用微博接口口handler.sendMessage(mess);/发送消息发送消息,至队列处理,至队列处理UIallTask.remove(task);/执行任务结束,移出任务执行任务结束

9、,移出任务Handler handleMessage()方法方法 更新更新UI根据不同的根据不同的Activity,调用,调用refresh()方法方法登录扩展功能登录扩展功能记住用户名、密码,自动登录记住用户名、密码,自动登录SharedPreferences判断网络是否正常判断网络是否正常有无有无3G wifi信号信号无信号提示用户,网络设置或关闭程序无信号提示用户,网络设置或关闭程序主主UI Tab切换切换Tab标签页结构标签页结构顶部顶部2个个Button,1个个TextView中部中部ListView后续布局再完善后续布局再完善底部底部可切换的可切换的5个个Activity所在所在A

10、ctivity高亮显示高亮显示包含在包含在TabActivty中中主主UI结构结构Tab切换切换一个一个Tab对应一个对应一个Activity每个每个Activity对应一个布局文件对应一个布局文件MainActivity继承自继承自TabActivityMain-添加添加TabActivity mth=getTabHost();TabSpec ts1=mth.newTabSpec(TAB_HOME).setIndicator(TAB_HOME);ts1.setContent(new Intent(Main.this,Home.class);mth.addTab(ts1);TabSpec ts

11、2=mth.newTabSpec(TAB_MSG).setIndicator(TAB_MSG);ts2.setContent(new Intent(Main.this,UserMSG.class);mth.addTab(ts2);图片切换图片切换类似类似CSS+JS的功能的功能 ListView加载数据加载数据Adapterclass MyAdapter extends BaseAdapter public List alls;public Context conts;public MyAdapter(Context con,List st)conts=con;alls=st;.ListVie

12、w加载数据加载数据public void refresh(Object.args)/TODO Auto-generated method stubswitch(Integer)args0).intValue()case REFRESH_WEIBO:process.setVisibility(View.GONE);MyAdapter ad=new MyAdapter(this,(List)args1);lv.setAdapter(ad);ad.notifyDataSetChanged();break;主主UI完善完善 ListView优化优化主主UI ListView布局布局MainActivi

13、ty布局布局title_two_button.xmlListView底部底部Tab切换切换RadioGroupListView布局布局itemview.xmlLayout.inflateinflate相当于将一个相当于将一个xml中定义的布局找出来中定义的布局找出来在一个在一个Activity里如果直接用里如果直接用findViewById()的话的话,对应的是对应的是setConentView()的那个的那个layout里的组件里的组件如果如果Activity里如果用到别的里如果用到别的layout比如对话框上的比如对话框上的layout,要设置对话框上的要设置对话框上的layout里里的组

14、件的组件(像图片像图片ImageView,文字文字TextView)上的内容上的内容,你就必须用你就必须用inflate()先将对话框上的先将对话框上的layout找出来找出来,然后再用这个然后再用这个layout对象去找到它上面的组件对象去找到它上面的组件改变改变ListView中的布局、内容中的布局、内容 View view=LayoutInflater.from(conts).inflate(R.layout.list_moreitems,null);TextView tv=(TextView)view.findViewById(R.id.textView);tv.setText(刷新刷新);完成主完成主UI谢谢合作!谢谢合作!谢谢合作!谢谢合作!我们因努力而精彩!我们因努力而精彩!我们因努力而精彩!我们因努力而精彩!

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 小学资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com