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; }}


 

原创粉丝点击