导航栏在 Android 中的应用是很常见的,前面我们学习 Android 组件时发现 TabHost 组件是可以完成的,但是 TabHost 组件在操作中因为其使用困难,所以一般不会作为界面分页框架的首选,使用最多的是 ActivityGroup 与 GridView 相结合的方式完成。
每一个 Activity 程序都是采用屏幕独占的方式运行的,而使用 ActivityGroup 就可以让多个 Activity 同事运行在一个屏幕上,而且每一个 Activity 还会继续独立的工作,在 Android 之中专门为用户提供了 android.app. ActivityGroup 类。
可以简单的理解为一个 ActivityGroup 中就包含了多个 Activity 程序。
ActivityGroup 类中常用方法:
No. | 方法 | 描述 |
1 | public Activity getCurrentActivity() | 取得当前的 Activity 对象 |
2 | public final LocalActivityManager getLocalActivityManager | 取得 LocalActivityManager 类的对象 |
一、基本菜单展示,为了方便,我们把所有菜单都跳转到一个 Activity 程序之中
mylayout.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <ImageView android:layout_width="fill_parent" android:layout_height="wrap_content" android:src="@drawable/android_book" /> </LinearLayout>
MyActivity.java(读取mylayout图片)
package com.iflytek.demo;
import android.app.Activity;
import android.os.Bundle;
public class MyActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.setContentView(R.layout.mylayout);
}
}
main.xml(整体程序的布局文件)
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent"> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/content" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent"> </LinearLayout> <GridView android:id="@+id/gridviewbar" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_alignParentBottom="true" android:fadingEdgeLength="5px" android:fadingEdge="vertical"/> </RelativeLayout> </LinearLayout>
下面关键在于如何处理GridView中显示的内容,对于内容只能由用户自己定义一个内容的填充器完成。
MenuImageAdapter.java
package com.iflytek.demo;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.GridView;
import android.widget.ImageView;
/**
*
* @author xdwang
*
* @create 2012-10-24 下午9:46:27
*
* @email:xdwangiflytek@gmail.com
*
* @description 图片适配器
*
*/
public class MenuImageAdapter extends BaseAdapter {
/**
* 保存所有要填充的组件
*/
private ImageView[] menuImg;
/**
* 上下文对象
*/
private Context context = null;
/**
* 选中时展示的图片
*/
private int selectedMenuImg;
/**
*
* @param context
* 上下文对象
* @param imgIds
* 所有的图片集合
* @param width
* 图片的宽度
* @param height
* 图片的高度
* @param selectedMenuImg
* 选中时展示的图片
*/
public MenuImageAdapter(Context context, int imgIds[], int width,
int height, int selectedMenuImg) {
this.context = context;
this.selectedMenuImg = selectedMenuImg;
this.menuImg = new ImageView[imgIds.length]; // 开辟新的数组
for (int i = 0; i < imgIds.length; i++) {
this.menuImg[i] = new ImageView(this.context); // 实例化ImageView
this.menuImg[i].setLayoutParams(new GridView.LayoutParams(width,
height)); // 设置图片的大小
this.menuImg[i].setAdjustViewBounds(false); // 不调整边界显示
this.menuImg[i].setPadding(3, 3, 3, 3);// 设置间距
this.menuImg[i].setImageResource(imgIds[i]);// 设置显示图片
}
}
@Override
public int getCount() {
return this.menuImg.length;
}
@Override
public Object getItem(int position) {
return this.menuImg[position];
}
@Override
public long getItemId(int position) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imgView = null;
if (convertView == null) {
imgView = this.menuImg[position];
} else {
imgView = (ImageView) convertView;
}
return imgView;
}
/**
* @descrption 设置选中的显示
* @author xdwang
* @create 2012-10-24下午9:49:03
* @param selId
* 选中时展示的图片
*/
public void setFocus(int selId) {
for (int i = 0; i < this.menuImg.length; i++) {
if (i != selId) { // 没有选中的
this.menuImg[i].setBackgroundResource(0); // 不设置背景图片
}
}
this.menuImg[selId].setBackgroundResource(this.selectedMenuImg);
}
}
ActivityGroup01Activity.java
package com.iflytek.demo;
import android.app.ActivityGroup;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.LinearLayout;
public class ActivityGroup01Activity extends ActivityGroup {
/**
* 工具菜单栏
*/
private GridView gridviewToolbar;
/**
* 图片适配器
*/
private MenuImageAdapter menu = null;
/**
* 填充内容
*/
private LinearLayout content = null;
/**
* 填充的图片的资源
*/
private int menu_img[] = new int[] { R.drawable.menu_main,
R.drawable.menu_news, R.drawable.menu_sms, R.drawable.menu_more,
R.drawable.menu_exit };
/**
* 图片的宽度
*/
private int width = 0;
/**
* 图片的高度
*/
private int height = 0;
private Intent intent = null;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.requestWindowFeature(Window.FEATURE_NO_TITLE); // 取消标题
super.setContentView(R.layout.main);
this.gridviewToolbar = (GridView) super.findViewById(R.id.gridviewbar);
this.content = (LinearLayout) super.findViewById(R.id.content);
// 定义工具栏的一些信息显示
this.gridviewToolbar.setNumColumns(this.menu_img.length); // 工具栏显示的个数
this.gridviewToolbar.setSelector(new ColorDrawable(Color.TRANSPARENT));//设置选中透明色
this.gridviewToolbar.setGravity(Gravity.CENTER);//居中显示
this.gridviewToolbar.setVerticalSpacing(0);//设置垂直间隔为0
//求出平均的宽度和高度
this.width = super.getWindowManager().getDefaultDisplay().getWidth()
/ this.menu_img.length;
this.height = super.getWindowManager().getDefaultDisplay().getHeight() / 8;
this.menu = new MenuImageAdapter(this, this.menu_img, this.width,
this.height, R.drawable.menu_selected);
this.gridviewToolbar.setAdapter(this.menu);
this.switchActivity(0); // 第一个被选中
this.gridviewToolbar
.setOnItemClickListener(new OnItemClickListenerImpl());
}
/**
*
* @author xdwang
*
* @create 2012-10-24 下午11:01:40
*
* @email:xdwangiflytek@gmail.com
*
* @description 工具栏菜单的单击事件
*
*/
private class OnItemClickListenerImpl implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
ActivityGroup01Activity.this.switchActivity(position);
}
}
/**
* @descrption 切换选中的操作
* @author xdwang
* @create 2012-10-24下午10:35:02
* @param id 选中的索引
*/
private void switchActivity(int id) {
this.menu.setFocus(id); // 设置选中图片的背景
this.content.removeAllViews(); // 删除所有的内容
switch (id) {
case 0:
this.intent = new Intent(ActivityGroup01Activity.this,
MyActivity.class);
break;
case 1:
this.intent = new Intent(ActivityGroup01Activity.this,
MyActivity.class);
break;
case 2:
this.intent = new Intent(ActivityGroup01Activity.this,
MyActivity.class);
break;
case 3:
this.intent = new Intent(ActivityGroup01Activity.this,
MyActivity.class);
break;
case 4:
this.exitDialog();
return;
}
//增加一个标记,FLAG_ACTIVITY_CLEAR_TOP表示情况Activity上面的内容
this.intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
// 表示在这里启动
Window subActivity = super.getLocalActivityManager().startActivity(
"subActivity", this.intent);
//在内容中加入view
//subActivity.getDecorView()表示获取顶端视图
this.content.addView(subActivity.getDecorView(),
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
}
/**
* @descrption 退出对话框
* @author xdwang
* @create 2012-10-24下午10:42:03
*/
private void exitDialog() {
Dialog dialog = new AlertDialog.Builder(this)
.setIcon(R.drawable.ic_launcher).setTitle("程序退出? ")
.setMessage("您确定要退出本程序吗?")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ActivityGroup01Activity.this.finish();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ActivityGroup01Activity.this.switchActivity(0);
}
}).create();
dialog.show();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
this.exitDialog();
}
return false;
}
}
效果图:
二、弹出菜单(进一步扩展菜单项)
有时候可以发现菜单项太多了,只能在原来的基础上弹出一个子菜单。
为了操作更加专业,下面定义strings.xml文件,增加一些文字性的信息
strings.xml
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, ActivityGroup02Activity!</string> <string name="app_name">弹出菜单</string> <string name="popmenu_common">常用</string> <string name="popmenu_set">设置</string> <string name="popmenu_tool">工具</string> </resources>
下面就要继续开发满足于标题显示的适配器类
PopupMenuTitleAdapter.java
package com.iflytek.demo;
import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.view.Gravity;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.TextView;
/**
*
* @author xdwang
*
* @create 2012-10-24 下午11:24:00
*
* @email:xdwangiflytek@gmail.com
*
* @description 标题显示的适配器
*
*/
public class PopupMenuTitleAdapter extends BaseAdapter {
/**
* 文字显示组件
*/
private TextView menuTitle[] = null;
/**
* 文字显示的颜色
*/
private int fontColor;
/**
* 选中的颜色
*/
private int selectedColor;
/**
* 未选中的颜色
*/
private int unSelectedColor;
public PopupMenuTitleAdapter(Context context, int[] titleIds,
int fontColor, int fontSize, int selectedColor, int unSelectedColor) {
this.fontColor = fontColor;
this.selectedColor = selectedColor;
this.unSelectedColor = unSelectedColor;
this.menuTitle = new TextView[titleIds.length];
for (int i = 0; i < titleIds.length; i++) {
this.menuTitle[i] = new TextView(context);
this.menuTitle[i].setText(titleIds[i]);
this.menuTitle[i].setTextSize(fontSize);
this.menuTitle[i].setGravity(Gravity.CENTER);
this.menuTitle[i].setPadding(10, 10, 10, 10);
}
}
@Override
public int getCount() {
return this.menuTitle.length;
}
@Override
public Object getItem(int position) {
return this.menuTitle[position];
}
@Override
public long getItemId(int position) {
return this.menuTitle[position].getId();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
if (convertView == null) {
view = this.menuTitle[position];
} else {
view = convertView;
}
return view;
}
public void setFocus(int index) {
for (int i = 0; i < this.menuTitle.length; i++) {
if (i != index) {
this.menuTitle[i].setBackgroundDrawable(new ColorDrawable(
this.unSelectedColor));
this.menuTitle[i].setTextColor(fontColor);
}
}
this.menuTitle[index].setBackgroundColor(0x00);
this.menuTitle[index].setTextColor(this.selectedColor);
}
}
下面定义菜单主体项的适配器
PopupMenuBodyAdapter.java
package com.iflytek.demo;
import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
/**
*
* @author xdwang
*
* @create 2012-10-24 下午11:31:28
*
* @email:xdwangiflytek@gmail.com
*
* @description 菜单主题项的适配器
*
*/
public class PopupMenuBodyAdapter extends BaseAdapter {
/**
* 所有图片
*/
private ImageView[] menuImg = null;
public PopupMenuBodyAdapter(Context context, int[] picIds) {
this.menuImg = new ImageView[picIds.length];
for (int i = 0; i < this.menuImg.length; i++) {
this.menuImg[i] = new ImageView(context);
this.menuImg[i].setImageResource(picIds[i]);
}
}
@Override
public int getCount() {
return this.menuImg.length;
}
@Override
public Object getItem(int position) {
return this.menuImg[position];
}
@Override
public long getItemId(int position) {
return this.menuImg[position].getId();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
if (convertView == null) {
view = this.menuImg[position];
} else {
view = convertView;
}
return view;
}
}
现在两个适配器搞定之后,下面最重要的就是弹出的窗口了。
现在之前的popupWindow组件已经不能被现在的操作所使用,所以必须扩充功能,扩充组件。
PopupMenu.java
package com.iflytek.demo;
import android.content.Context;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.view.Gravity;
import android.view.ViewGroup.LayoutParams;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.LinearLayout;
import android.widget.PopupWindow;
/**
*
* @author xdwang
*
* @create 2012-10-24 下午11:49:42
*
* @email:xdwangiflytek@gmail.com
*
* @description 自定义的PopupWindow
*
*/
public class PopupMenu extends PopupWindow {
/**
* 表示标题
*/
private GridView popTitle;
/**
* 标题主体
*/
private GridView popBody;
private PopupMenuTitleAdapter titleAdapter = null;
private LinearLayout linearLayout = null;
public PopupMenu(Context context, int titleIds[], int backgroundColor,
OnItemClickListener titleCallback, OnItemClickListener bodyCallback) {
super(context); // 还是需要创建弹出的组件
this.titleAdapter = new PopupMenuTitleAdapter(context, titleIds,
0xFF222222, 16, Color.LTGRAY, Color.WHITE);
this.linearLayout = new LinearLayout(context);
this.linearLayout.setOrientation(LinearLayout.VERTICAL);
this.popTitle = new GridView(context);
this.popTitle.setLayoutParams(new LayoutParams(
LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
this.popTitle.setNumColumns(titleIds.length);
this.popTitle.setHorizontalSpacing(1);// 设置水平间距为1
this.popTitle.setVerticalSpacing(1);// 设置垂直的间距为1
this.popTitle.setStretchMode(GridView.STRETCH_COLUMN_WIDTH); // 拉伸列宽
this.popTitle.setAdapter(this.titleAdapter);
this.popTitle.setOnItemClickListener(titleCallback);
this.popBody = new GridView(context);
this.popBody.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
this.popBody.setNumColumns(5);
this.popBody.setHorizontalSpacing(1);
this.popBody.setVerticalSpacing(1);
this.popBody.setPadding(10, 10, 10, 10);
this.popBody.setGravity(Gravity.CENTER);
this.popBody.setStretchMode(GridView.STRETCH_COLUMN_WIDTH);
this.popBody.setOnItemClickListener(bodyCallback);
this.linearLayout.addView(this.popTitle);
this.linearLayout.addView(this.popBody);
super.setContentView(this.linearLayout);
super.setWidth(LayoutParams.FILL_PARENT);
super.setHeight(LayoutParams.WRAP_CONTENT);
super.setBackgroundDrawable(new ColorDrawable(backgroundColor));
super.setFocusable(true); // 允许获得焦点
}
public void setPopupMenuBodyAdapter(PopupMenuBodyAdapter adapter) {
this.popBody.setAdapter(adapter);
}
public void setPopTitleSelected(int postion) {
this.popTitle.setSelection(postion);
this.titleAdapter.setFocus(postion);
}
/**
* @descrption 设置选中后的颜色
* @author xdwang
* @create 2012-10-24下午11:59:34
* @param position
* @param selectedColor
*/
public void setPopBodySelected(int position, int selectedColor) {
int count = this.popBody.getChildCount();
for (int i = 0; i < count; i++) {
if (i != position) {
ImageView img = (ImageView) this.popBody.getChildAt(i);
img.setBackgroundColor(Color.TRANSPARENT);
}
}
ImageView img = (ImageView) this.popBody.getChildAt(position);
img.setBackgroundColor(selectedColor);
}
}
图片适配器MenuImageAdapter.java和上面的基本菜单一致
ActivityGroup02Activity.java
package com.iflytek.demo;
import android.app.ActivityGroup;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.Intent;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.view.Gravity;
import android.view.KeyEvent;
import android.view.View;
import android.view.ViewGroup.LayoutParams;
import android.view.Window;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.LinearLayout;
import android.widget.Toast;
public class ActivityGroup02Activity extends ActivityGroup {
/**
* 工具菜单栏
*/
private GridView gridviewToolbar;
/**
* 图片适配器
*/
private MenuImageAdapter menu = null;
/**
* 填充内容
*/
private LinearLayout content = null;
/**
* 填充的图片的资源
*/
private int menu_img[] = new int[] { R.drawable.menu_main,
R.drawable.menu_news, R.drawable.menu_sms, R.drawable.menu_more,
R.drawable.menu_exit };
/**
* 图片的宽度
*/
private int width = 0;
/**
* 图片的高度
*/
private int height = 0;
private Intent intent = null;
/**
* 标识,是否打开子菜单
*/
private boolean isShow = false;
private int commonItemIds[] = new int[] { R.drawable.common_account,
R.drawable.common_addmark, R.drawable.common_download,
R.drawable.common_exit, R.drawable.common_fullscreen,
R.drawable.common_history, R.drawable.common_night,
R.drawable.common_refresh };
private int setItemIds[] = new int[] { R.drawable.set_button,
R.drawable.set_mode, R.drawable.set_nophoto,
R.drawable.set_rotation, R.drawable.set_scroll,
R.drawable.set_skin, R.drawable.set_system, R.drawable.set_time };
private int totleItemids[] = new int[] { R.drawable.tool_back,
R.drawable.tool_copy, R.drawable.tool_file, R.drawable.tool_help,
R.drawable.tool_report, R.drawable.tool_report,
R.drawable.tool_save, R.drawable.tool_share };
private int titleIds[] = new int[] { R.string.popmenu_common,
R.string.popmenu_set, R.string.popmenu_tool };
private PopupMenu popMenu = null;
private PopupMenuBodyAdapter commonAdapter = null;
private PopupMenuBodyAdapter setAdapter = null;
private PopupMenuBodyAdapter toolAdapter = null;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
super.requestWindowFeature(Window.FEATURE_NO_TITLE); // 取消标题
super.setContentView(R.layout.main);
this.gridviewToolbar = (GridView) super.findViewById(R.id.gridviewbar);
this.content = (LinearLayout) super.findViewById(R.id.content);
// 定义工具栏的一些信息显示
this.gridviewToolbar.setNumColumns(this.menu_img.length); // 求出可以保存的个数
this.gridviewToolbar.setSelector(new ColorDrawable(Color.TRANSPARENT));
this.gridviewToolbar.setGravity(Gravity.CENTER);
this.gridviewToolbar.setVerticalSpacing(0);
this.width = super.getWindowManager().getDefaultDisplay().getWidth()
/ this.menu_img.length;
this.height = super.getWindowManager().getDefaultDisplay().getHeight() / 8;
this.menu = new MenuImageAdapter(this, this.menu_img, this.width,
this.height, R.drawable.menu_selected);
this.gridviewToolbar.setAdapter(this.menu);
this.switchActivity(0); // 第一个被选中
this.gridviewToolbar
.setOnItemClickListener(new OnItemClickListenerImpl());
this.popMenu = new PopupMenu(this, this.titleIds, 0x55123456,
new PopupTitleOnItemClickListenerCallback(),
new PopupBodyOnItemClickListenerCallback());
this.commonAdapter = new PopupMenuBodyAdapter(this, this.commonItemIds);
this.setAdapter = new PopupMenuBodyAdapter(this, this.setItemIds);
this.toolAdapter = new PopupMenuBodyAdapter(this, this.totleItemids);
this.popMenu.setPopupMenuBodyAdapter(this.commonAdapter);
this.popMenu.setPopTitleSelected(0);
}
private class OnItemClickListenerImpl implements OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
ActivityGroup02Activity.this.switchActivity(position);
}
}
/**
* @descrption 切换选中的操作
* @author xdwang
* @create 2012-10-24下午11:50:22
* @param id
*/
private void switchActivity(int id) {
this.menu.setFocus(id); // 设置选中图片的背景
this.content.removeAllViews(); // 删除所有的内容
switch (id) {
case 0:
this.intent = new Intent(ActivityGroup02Activity.this,
MyActivity.class);
break;
case 1:
this.intent = new Intent(ActivityGroup02Activity.this,
MyActivity.class);
break;
case 2:
this.intent = new Intent(ActivityGroup02Activity.this,
MyActivity.class);
break;
case 3:
this.showPopupMenu();
break;
case 4:
this.exitDialog();
return;
}
this.intent.addFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);
Window subActivity = super.getLocalActivityManager().startActivity(
"subActivity", this.intent);
this.content.addView(subActivity.getDecorView(),
LayoutParams.FILL_PARENT, LayoutParams.FILL_PARENT);
}
private void exitDialog() {
Dialog dialog = new AlertDialog.Builder(this).setIcon(R.drawable.pic_m)
.setTitle("程序退出? ").setMessage("您确定要退出本程序吗?")
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ActivityGroup02Activity.this.finish();
}
})
.setNegativeButton("取消", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
ActivityGroup02Activity.this.switchActivity(0);
}
}).create();
dialog.show();
}
@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
if (keyCode == KeyEvent.KEYCODE_BACK) {
this.exitDialog();
}
return false;
}
/**
* @descrption 判断是否显示子菜单
* @author xdwang
* @create 2012-10-24下午11:38:26
*/
private void showPopupMenu() {
if (this.isShow) { // 已经显示了
this.popMenu.dismiss();
this.isShow = false;
} else {
this.popMenu.showAtLocation(
ActivityGroup02Activity.this.gridviewToolbar,
Gravity.BOTTOM, 0, this.height);
this.isShow = true;
}
}
/**
*
* @author xdwang
*
* @create 2012-10-24 下午11:31:52
*
* @email:xdwangiflytek@gmail.com
*
* @description 内容栏事件回调
*
*/
private class PopupBodyOnItemClickListenerCallback implements
OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
ActivityGroup02Activity.this.popMenu.setPopBodySelected(position,
Color.GRAY);
Toast.makeText(ActivityGroup02Activity.this, "执行选项 - " + position,
Toast.LENGTH_SHORT).show();
}
}
/**
*
* @author xdwang
*
* @create 2012-10-24 下午11:31:24
*
* @email:xdwangiflytek@gmail.com
*
* @description 标题栏的事件回调
*
*/
private class PopupTitleOnItemClickListenerCallback implements
OnItemClickListener {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position,
long id) {
ActivityGroup02Activity.this.popMenu.setPopTitleSelected(position);
switch (position) {
case 0:
ActivityGroup02Activity.this.popMenu
.setPopupMenuBodyAdapter(ActivityGroup02Activity.this.commonAdapter);
break;
case 1:
ActivityGroup02Activity.this.popMenu
.setPopupMenuBodyAdapter(ActivityGroup02Activity.this.setAdapter);
break;
case 2:
ActivityGroup02Activity.this.popMenu
.setPopupMenuBodyAdapter(ActivityGroup02Activity.this.toolAdapter);
break;
}
}
}
}
效果图: