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. Android(安卓)号码查询性能优化
  2. Android中音乐文件的信息详解【安卓源码解析二】
  3. Android(安卓)SQLiteOpenHelper
  4. Arcgis for android 离线查询
  5. Arcgis for android 离线查询
  6. Android(安卓)判断SD卡是否存在及容量查询
  7. Android媒体库使用分组查询
  8. android 内容提供者查询单个使用URI匹配器
  9. android mediaStore

随机推荐

  1. 用Gson和SharedPreferences轻松构建andro
  2. Android数据库ORMlite框架翻译系列
  3. Android的Audio系统
  4. 使用Android内置的Pull解析器解析XML文件
  5. Android(安卓)Studio中使用Gradle和Andro
  6. [置顶] Android模拟打电话应用程序实现分
  7. android (三) 禁止按返回键,退出系统。
  8. Android(安卓)Studio如何导入第三方库文
  9. MPlayer往Android上的移植(1)
  10. 解决Android(安卓)Studio的adb not respo