android学习之-ActivityGroup
来源:互联网 发布:我知女人心在线阅读 编辑:程序博客网 时间:2024/05/16 15:02
1.GridView实现的效果类似TagHost
2.设置一些GridView的参数mGridView.setNumColumns(image_array.length);// 设置每行列数
mGridView.setSelector(new ColorDrawable(Color.TRANSPARENT));// 选中的时候为透明色
mGridView.setGravity(Gravity.CENTER);// 位置居中
mGridView.setVerticalSpacing(0);// 垂直间隔
int width = this.getWindowManager().getDefaultDisplay().getWidth()
/ image_array.length;
mGridView.setColumnWidth(width);//设置每列的宽度
3.设置适配器和点击事件mGridView.setAdapter(topImgAdapter);// 设置菜单Adapter
mGridView.setOnItemClickListener(new ItemClickEvent());// 项目点击事件
switchActivity(0);// 默认打开第0页
4.点击事件里面的activity转换
public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
long arg3) {
switchActivity(arg2);
}
5.switchActivity()中的各个view之间的切换
部分代码:
1.
setContentView(R.layout.activity_group); activityManager = getLocalActivityManager(); mGridView = (GridView) this.findViewById(R.id.home_gridView); mLayout = (LinearLayout) this.findViewById(R.id.home_linear); mGridView.setNumColumns(image_array.length);// 设置每行列数 mGridView.setSelector(new ColorDrawable(Color.TRANSPARENT));// 选中的时候为透明色 mGridView.setGravity(Gravity.CENTER);// 位置居中 mGridView.setVerticalSpacing(0);// 垂直间隔 int width = this.getWindowManager().getDefaultDisplay().getWidth() / image_array.length; mGridView.setColumnWidth(width);//设置每列的宽度 topImgAdapter = new ImageAdapter(this,resContext); // adapter = new GridViewAdapter(getApplicationContext()); mGridView.setAdapter(topImgAdapter);// 设置菜单Adapter mGridView.setOnItemClickListener(new ItemClickEvent());// 项目点击事件 switchActivity(0);// 默认打开第0页
2.
/** * 点击条目切换与之对应的activity * * @author zhouguosen 2012-5-3上午10:29:17 * */ class ItemClickEvent implements OnItemClickListener { public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { switchActivity(arg2); } }
3.
/** * 根据ID打开指定的Activity * * @param id * GridView选中项的序号 */ public void switchActivity(int id,Intent data) { topImgAdapter.setFocus(id);// 选中项获得高亮 mLayout.removeAllViews();// 必须先清除容器中所有的View Intent intent = null; Window mWindow = null; if (id == HOMEACTIVITY) { intent = new Intent(GroupActivity.this, HomeActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); mWindow = activityManager.startActivity("HomeActivity", intent); } else if (id == MESSAGEACTIVITY) { //得到子group的Activity id int msgActivityId=-1; if(data!=null){ msgActivityId=data.getIntExtra(Consts.EXTRA_MESSAGE_ACTIVITY_ID, -1); } intent = new Intent(GroupActivity.this, MessageGroupActivity.class); intent.putExtra(Consts.EXTRA_MESSAGE_ACTIVITY_ID, msgActivityId); //消息的activity id intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); mWindow = activityManager.startActivity("MessageGroupActivity", intent); } else if (id == INTERACTIVEACTIVITY) { intent = new Intent(GroupActivity.this, InteractiveActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); mWindow = activityManager.startActivity("InteractiveActivity", intent); } else if (id == BABYACTIVITY) { intent = new Intent(GroupActivity.this, BabyActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); mWindow = activityManager.startActivity("BabyActivity", intent); } else if (id == MOREACTIVITY) { intent = new Intent(GroupActivity.this, TestMoreActivity.class); intent.addFlags(Intent.FLAG_ACTIVITY_SINGLE_TOP); mWindow = activityManager.startActivity("TestMoreActivity", intent); } // 容器添加View mLayout.addView(mWindow.getDecorView(), LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT); currId=id; }
4.适配器:
package com.enterise.aibaobao.adapter;import android.content.Context;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import android.widget.BaseAdapter;import android.widget.ImageView;import android.widget.TextView;import com.enterise.aibaobao.R;import com.enterise.aibaobao.data.Msg;import com.enterise.aibaobao.data.SkinManager;public class ImageAdapter extends BaseAdapter {// private static final String TAG = "ImageAdapter"; Context resContext; Context currContext; LayoutInflater inflater; SkinManager skinMgr=SkinManager.getInstance(); private int array[] = null; int msgNums[]=new int[]{0,0,0,0,0}; //首页(微博)、消息 、互动消息 、宝宝视频、 更多 int image_array_down[] = { R.drawable.home_down, R.drawable.message_down, R.drawable.interactive_message_down, R.drawable.babyvideo_down, R.drawable.more_down }; int image_array[] = { R.drawable.home, R.drawable.message, R.drawable.interactive_message, R.drawable.babyvideo, R.drawable.more }; public ImageAdapter(Context c, Context resContext) { this.currContext = c; this.resContext=resContext; this.array = new int[image_array.length]; for(int i=0;i<array.length;i++){ array[i]=image_array[i]; } array[0]=image_array_down[0]; //选中第一个 } /** * 当资源上下文改变时 * @param context */ public void onUpdateResContext(Context context){ this.resContext=context; this.notifyDataSetChanged(); } @Override public int getCount() { // TODO Auto-generated method stub return array.length; } @Override public Object getItem(int position) { // TODO Auto-generated method stub return position; } @Override public long getItemId(int position) { // TODO Auto-generated method stub return position; } public void setFocus(int index) { for(int i=0;i<array.length;i++){ array[i]=image_array[i]; } array[index]=image_array_down[index]; //选中第一个 this.notifyDataSetChanged(); } /** * 当新消息产生时 * @param msg */ public void onNewMsgProduce(Msg msg){ msgNums[0]=msg.getWeiboNum(); msgNums[1]=msg.getLetterNum()+msg.getNoticeNum(); this.notifyDataSetChanged(); } /** * 当新消息看完毕之后 取消显示 * @param msg */ public void onCancleNewMsgNotifi(){ msgNums[0]= 0; //首页(微博)、消息 、互动消息 、宝宝视频、 更多 msgNums[1]= 0; msgNums[2]= 0; msgNums[3]= 0; msgNums[4]= 0; this.notifyDataSetChanged(); } @Override public View getView(int position, View convertView, ViewGroup parent) { //1.组件 ViewHolder holder=null; if(convertView==null){ LayoutInflater inflater=(LayoutInflater) currContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); convertView=inflater.inflate(R.layout.view_activity_group_nav_item, null); holder=new ViewHolder(); holder.img_icon=(ImageView) convertView.findViewById(R.id.activity_group_img_icon); holder.tv_tip=(TextView) convertView.findViewById(R.id.activity_group_tv_tip); convertView.setTag(holder); }else{ holder=(ViewHolder) convertView.getTag(); } //2.显示数据// holder.img_icon.setImageResource(array[position]); holder.img_icon.setImageDrawable(skinMgr.findDrawable(currContext,resContext,array[position])); if(msgNums[position]>0){ holder.tv_tip.setText(""+msgNums[position]);// holder.tv_tip.setText("New "+msgNums[position]); holder.tv_tip.setVisibility(View.VISIBLE); }else{ holder.tv_tip.setVisibility(View.INVISIBLE); } return convertView; } static class ViewHolder{ ImageView img_icon; TextView tv_tip; }}
- android学习之-ActivityGroup
- android API之ActivityGroup
- android API之ActivityGroup
- android API之ActivityGroup
- Android之ActivityGroup实现Tab功能
- Android之ActivityGroup实现Tab功能 (转)
- android 之用ActivityGroup 实现Tab分页
- Android之ActivityGroup实现Tab功能
- Android之ActivityGroup实现Tab功能
- Android界面之ActivityGroup的使用
- Android源码学习之四-ActivityGroup是如何对嵌入的Activitys进行管理的
- Android源码学习之四-ActivityGroup是如何对嵌入的Activitys进行管理的
- Android源码学习之四-ActivityGroup是如何对嵌入的Activitys进行管理的
- Android源码学习之四-ActivityGroup是如何对嵌入的Activitys进行管理的
- android ActivityGroup
- android-ActivityGroup
- Android ActivityGroup
- Android学习札记33:对ActivityGroup源代码的一些分析
- Action Bar
- MATLAB的数据导出到Excel
- ios ---常用的图片处理技术
- 求最大公约数的方法
- 数理逻辑:谓词演算(10)等价公式
- android学习之-ActivityGroup
- win7 下建立android等设备可用的wifi 接入点--可共享宽带连接,本地连接,无线连接等
- GetHashCode Equals 与 Dictionary , Hash , List 的关系
- 三种东西永远不要放到数据库里
- MySQL 性能跟踪语句
- 换行
- 如何利用 IIS7 的 ARR 模組實做 Reverse Proxy 機制
- 友元函数实例
- 我眼中的世界(一)