第八十五讲:GridView和ActivityGroup实现的Tab分页

逆境是成长必经的过程,能勇于接受逆境的人,生命就会日渐的茁壮。

本讲内容:GridView和ActivityGroup实现的Tab分页

一、ActivityGroup相关–getLocalActivityManager() 以及intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP)用法

1、ActivityGroup中可以调用getLocalActivityManager()方法获取LocalActityManager来管理Activity。

2、LocalActivityManager通过startActivity(String id, Intent intent)方法,

示例一效果图:

下面是res/layout/activity_main.xml 布局文件:

<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android=""android:layout_width="match_parent"android:layout_height="match_parent" ><!– 动态显示界面 –><LinearLayoutandroid:id="@+id/body"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_above="@+id/gridView"android:layout_alignParentTop="true"android:orientation="vertical" ></LinearLayout><!– 底部功能菜单栏 –><GridViewandroid:id="@+id/gridView"android:layout_width="match_parent"android:layout_height="wrap_content"android:layout_alignParentBottom="true"android:background="@drawable/navigationbardown"android:cacheColorHint="#00000000"android:gravity="center"android:listSelector="@android:color/transparent"android:verticalSpacing="0dp" /></RelativeLayout>

即为黑色了

下面是ImageAdaper.java文件:

public class ImageAdapter extends BaseAdapter{//普通图片数组private int[] imgs={R.drawable.home, R.drawable.addrbook, R.drawable.longnormal};//高亮图片数组protected int[] imgsLight={R.drawable.home1, R.drawable.addrbook1, R.drawable.longhightlight};;private int selectItem;private Context context;//图片适配器,,里面有一个设置高亮的方法比较重要protected void setImageLih(int selectItem) {this.selectItem=selectItem;//界面刷新notifyDataSetChanged();}public ImageAdapter(Context context) {this.context = context; }@Overridepublic int getCount() {return imgs.length;}@Overridepublic Object getItem(int position) {return imgs[position];}@Overridepublic long getItemId(int position) {return position;}@Overridepublic View getView(int position, View convertView, ViewGroup parent) {if(convertView==null){//产生ImageView 对象convertView = new ImageView(context);}if(position==selectItem){convertView.setBackgroundResource(imgsLight[position]);}else{convertView.setBackgroundResource(imgs[position]);}return convertView;}}下面是MainActivity.java主界面文件:

public class MainActivity extends ActivityGroup {// Tab标签private GridView gridView;// GridView 适配器private ImageAdapter adapter;// 装载Activity的容器private LinearLayout layout;@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initUI();}private void initUI() {adapter = new ImageAdapter(this);layout = (LinearLayout) findViewById(R.id.body);gridView = (GridView) findViewById(R.id.gridView);// 因为我们显示一行,列数等于数组的长度gridView.setNumColumns(adapter.getCount());gridView.setAdapter(adapter);startActivity(0);gridView.setOnItemClickListener(new OnItemClickListener() {@Overridepublic void onItemClick(AdapterView<?> Parent, View view,int position, long id) {// 点击设置高亮显示adapter.setImageLih(position);startActivity(position);}});}// 根据position跳转到不同的Activityprivate void startActivity(int position) {// 先清除容器里面的Viewlayout.removeAllViews();Intent intent = null;if (position == 0) {intent = new Intent(MainActivity.this, OneView.class);} else if (position == 1) {intent = new Intent(MainActivity.this, TwoView.class);} else if (position == 2) {intent = new Intent(MainActivity.this, ThreeView.class);}intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);// 将Activity转换成ViewView view = getLocalActivityManager().startActivity("intent", intent).getDecorView();LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);// 将Activity转换成的View添加到容器layout.addView(view, layoutParams);}}

使用view的removeAllViews()方法清除不需要的view,使用addView(View v)方法添加需要的view。

下面是OneView.java界面文件:

public class OneView extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.one);}}

下面是TwoView.java界面文件:

public class TwoView extends Activity{@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.two);}}

下面是ThreeView.java界面文件:

乐观者在灾祸中看到机会;悲观者在机会中看到灾祸

第八十五讲:GridView和ActivityGroup实现的Tab分页

相关文章:

你感兴趣的文章:

标签云: