1要实现微博客户端,需要考虑许多方面,比如需要开通子线程来做联网的事,需要更新主UI,需要完成数据保存,需要做各个窗口的跳转,需要创建很多activity,因此,做架构如下:

构建AndroidClient端开发基本构架:



微博组织架构调整 新浪微博部门结构_网络





微博接口处理各个api的调用,但具体的调用是由底层网络通讯模块(在下载的sdk中,有一个http的包,这个包对网络通讯模块做了封装),在UI中发送任务,然后传给核心调度模块,核心调度模块来请求网络,返回数据后再调用主窗口的更新方法,把数据传给窗口




2首页需求功能描述()

(1)呈现用户微博首页信息,显示所有关注微博的最新信息,是各种操作的中心窗口

(2)点击刷新获取最新数据

(3)点击更多内容获取下一页

(4)左上角图标出现发表微博窗口

(5)右上角为刷新窗口按钮

(6)按下Menu出现内容

跳转流程:

   可以跳转到各个子功能窗口,用户按下返回键弹出对话框提示用户是否退出


3 Menu的实现

在想实现Menu的activity中复习两个成员函数

public boolean onCreateOptionsMenu(Menu menu){

即选项对应图片));

····

Return super.onCreateOptionsMenu(menu);

}

Public boolean onMenuItemSelected(int featureld,MenuItem item){

//用switch来确定选择的是哪一项

Switch(item.getItemId())

{

Case 1 :

·····

break;

····



}

Return super.onMenuItemSelected(featureld,item);

}



4上下文菜单的实现

首先需要注册上下文菜单在onCreate()方法中

括号内参数是列表对象

要在微博首页中,用户按着某一条时,可以实现转发,收藏等,需要实现上下文菜单,这个也需要在想要实现这个功能的activity中覆盖两个方法

//初始化上下文菜单
@Override
public void onCreateContextMenu(ContextMenu menu, View v,ContextMenuInfo menuInfo)
{
// TODO Auto-generated method stub
super.onCreateContextMenu(menu, v, menuInfo);
AdapterContextMenuInfo lm=(AdapterContextMenuInfo)menuInfo;

menu.setHeaderTitle("弹出菜单");
menu.add(1, 1, 1, lm.id+"转发");
menu.add(1, 2, 2, lm.id+"评论");
menu.add(1, 3, 3, lm.id+"收藏");
menu.add(1, 4, 4, lm.id+"查看信息");
}
//用户触发了上下文菜单的某一项
public boolean onContextItemSelected(MenuItem item) {
// TODO Auto-generated method stub
//得到菜单项信息
AdapterContextMenuInfo lm=(AdapterContextMenuInfo)item.getMenuInfo();
Toast.makeText(this, ""+lm.id, 1000).show();
switch(item.getItemId())
{case 1://转发
// Intent it=new Intent(this,reweetActivity.class);
// it.getExtras().putLong("statusId", lm.id);
// startActivityforResult(it,0);
break;
case 2://评论
case 3://收藏
case 4://查看信息

}
return super.onContextItemSelected(item);
}