activity:

package com.android.fmis.client.activity;


import java.lang.reflect.Field;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;


import android.app.Activity;
import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.GridView;
import android.widget.ImageView;
import android.widget.SimpleAdapter;
import android.widget.TextView;


import com.android.fmis.client.model.Menu;
import com.android.fmis.client.service.MenuService;
import com.android.fmis.client.util.Utils;


public class IndexActivity extends Activity{
private GridView gridview;
List

menuList;
private ImageView imageItem;
private TextView textItem;
private String role;
private String isChargeMan;
private String UCode;


protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.index);
initControl();
initData();
}

private void initControl() {
//imageItem = (ImageView) findViewById(R.id.imageItem);
//imageItem.setAlpha(200);
//textItem=(TextView) findViewById(R.id.textItem);
getBundleData();

}
private void getBundleData(){
Bundle b=getIntent().getExtras();
if(b!=null){
UCode=b.getString("UCode");
role=b.getString("role");
isChargeMan=b.getString("isChargeMan");
}
}
private void initData() {
gridview = (GridView) findViewById(R.id.gv_index);
gridview.setSelector(new ColorDrawable(Color.TRANSPARENT));
MenuService service = new MenuService(IndexActivity.this);


menuList = service.getMenuList(role,isChargeMan);


// 生成动态数组,并且转入数据
ArrayList> lstImageItem = new ArrayList>();


for (int i = 0; i < menuList.size(); i++) {
try {
Menu menu = menuList.get(i);


HashMap map = new HashMap();


Class draw = R.drawable.class;
Field field = draw.getDeclaredField(menu.getIcon());
int icon = field.getInt(menu.getIcon());


map.put("ItemImage", icon);
map.put("ItemText", menu.getName());
lstImageItem.add(map);


} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
}
}


// 生成适配器的ImageItem <====> 动态数组的元素,两者一一对应
SimpleAdapter saImageItems = new SimpleAdapter(this, // 没什么解释
lstImageItem,// 数据来源
R.layout.index_gridview_item,// night_item的XML实现


// 动态数组与ImageItem对应的子项
new String[] { "ItemImage", "ItemText" },


// ImageItem的XML文件里面的一个ImageView,和TextView ID
new int[] { R.id.imageItem, R.id.textItem });


// 添加并且显示
gridview.setAdapter(saImageItems);

// 添加消息处理
gridview.setOnItemClickListener(new ItemClickListener());
}


// 当AdapterView被单击(触摸屏或者键盘),则返回的Item单击事件
class ItemClickListener implements OnItemClickListener {
public void onItemClick(AdapterView<?> arg0,// The AdapterView where the
// click happened
View view,// The view within the AdapterView that was clicked
int arg2,// The position of the view in the adapter
long arg3// The row id of the item that was clicked
) {
// 在本例中arg2=arg3
imageItem = (ImageView) view.findViewById(R.id.imageItem);
switch (arg2) {
case 0:
imageItem
.setImageResource(R.drawable.icon);
break;
case 1:
imageItem
.setImageResource(R.drawable.icon1);
break;
case 2:
imageItem
.setImageResource(R.drawable.icon2);
break;
case 3:
imageItem
.setImageResource(R.drawable.icon3);
break;
default:
break;
}
try {
Menu menu = menuList.get(arg2);


if (menu.getActivity() == null || menu.getActivity() == "") {
return;
}


String className = "com.android.fmis.client.activity."
+ menu.getActivity();
Utils.startActivity(IndexActivity.this, Class
.forName(className));
} catch (Exception e) {
// TODO: handle exception
Log.e("IndexActivity", e.getMessage(), e);
e.printStackTrace();
}
}
}


}


service:

package com.android.fmis.client.service;


import java.io.InputStream;
import java.util.ArrayList;
import java.util.List;


import javax.xml.parsers.DocumentBuilder;
import javax.xml.parsers.DocumentBuilderFactory;


import org.w3c.dom.Document;
import org.w3c.dom.Element;
import org.w3c.dom.NodeList;


import com.android.fmis.client.model.Menu;




import android.content.Context;
import android.util.Log;






/**
 * 主界面九宫格
 * @author Administrator
 *
 */
public class MenuService {


private Context context;



private static List

menuList;
/**
 * @param context
 */
public MenuService(Context context) {
this.context = context;
}



/**
 * 
 */
public static void clean()
{
menuList = null;
}

/**
 * @return
 */
public List getMenuList(String role,String isChargeMan) {//01教师,03学生,isChargeMan=1教师且部门负责人
if(role.equals("01") && isChargeMan.equals("1")){//教师且负责人
menuList=getMenusFromXml("MenuTeacherPrincipal.xml");
}else if(role.equals("01") && !isChargeMan.equals("1")){//教师非负责人
menuList= getMenusFromXml("MenuTeacher.xml");
}else if(role.equals("03") && !isChargeMan.equals("1")){//学生
menuList=getMenusFromXml("MenuStudent.xml");
}
return menuList;
}


/**
 * 参数fileName:为xml文档路径
 */
public List getMenusFromXml(String fileName) {
List Menus = new ArrayList();
DocumentBuilderFactory factory = null;
DocumentBuilder builder = null;
Document document = null;
InputStream inputStream = null;
// 首先找到xml文件
factory = DocumentBuilderFactory.newInstance();
try {
// 找到xml,并加载文档
builder = factory.newDocumentBuilder();
inputStream = this.context.getResources().getAssets()
.open(fileName);
document = builder.parse(inputStream);
// 找到根Element
Element root = document.getDocumentElement();
NodeList nodes = root.getElementsByTagName("Menu");
// 遍历根节点所有子节点,Menus 下所有Menu
Menu menu = null;
for (int i = 0; i < nodes.getLength(); i++) {

menu = new Menu();
// 获取Menu元素节点
Element menuElement = (Element) (nodes.item(i));

// 获取Menu中name属性值
menu.setName(menuElement.getAttribute("name"));
menu.setIcon(menuElement.getAttribute("icon"));
menu.setActivity(menuElement.getAttribute("activity"));

// NodeList subNodes = menuElement.getElementsByTagName("SubMenu");
//
// menu.setSubMenuList(new ArrayList());
//
// for (int n = 0; n < subNodes.getLength(); n++) {
// Element subMenuElement = (Element) (subNodes.item(n));
//
// SubMenu subMenu = new SubMenu();
// subMenu.setName(subMenuElement.getAttribute("name"));
// subMenu.setActivity(subMenuElement.getAttribute("activity"));
//
// menu.getSubMenuList().add(subMenu);
// }

Menus.add(menu);
}
} catch (Exception e){
Log.e("error", e.getMessage(), e);

} finally {
try {
inputStream.close();
} catch(Exception ex)  {

}
}
return Menus;
}


}

登录有权限问题,不同用户登录有不同的模块,那么这个就在这里配置了

MenuStdent.xml //学生登录只有学生收费查询

<?xml version="1.0" encoding="utf-8"?>



MenuTeacher.xml  //普通教师登录有薪资查询和项目经费查询

<?xml version="1.0" encoding="utf-8"?>





MenuTeacherPrincipal.xml   //教师且是部门负责人,有薪资查询,部门经费查询,项目经费查询

<?xml version="1.0" encoding="utf-8"?>






更多相关文章

  1. 2012年全国最新Android开发工程师薪资水平调查分析
  2. 面试被问“期望薪资多少”?高情商的人都这么说
  3. 程序员的薪资是如何确定出来的?
  4. 2017中国程序员薪资调查:平均薪资10K!
  5. 做完小程序项目、老板给我加了6k薪资~

随机推荐

  1. android RelativeLayout属性和布局实例
  2. android surfaceView 概述
  3. Android实现3个圆圈的动画
  4. Android简易注解View(java反射实现)
  5. android解析json小例子
  6. AndroidManifest.xml之 element详解
  7. android讲义9之向电话本进行批处理的插入
  8. cocos2d-x环境搭建 for eclipse
  9. Android 原生开发、H5、React-Native开发
  10. [实战示例] 带您深入探讨 Android 传感器