android同一个app不同用户,Android根据不同身份配置APP对应的不同模块

项目需求为APP的使用单位有很多部门,各个部分的业务也是独立的,所以开发的APP中如果把所有的模块都显示出来然后再做权限分配,会显得屏幕全是各个模块,而使用的人员只使用其中一到两个,这样给使用者带来了不便,那么如何能根据不同业务部门不同身份的人登录APP后,显示对应身份所能看到的模块就变成本次要解决的问题了。

解决思路:APP的主页用gridview来动态加载模块,然后通过list给gridview进行适配,最后在屏幕上显示出来;

但是问题来了,如何保证点击对应模块就进入相对应的模块内,例如张三的权限是个人中心和数据查看两个模块,而李四的权限是数据统计,那么张三登录进去时屏幕第一个显示个人中心,第二个显示数据查看,点击个人中心进入对应的个人中心,点击数据查看进入对应的数据查看;而李四登录进入是屏幕只显示数据统计,如何做到点击数据统计进入对应的数据统计而不是进入个人中心。

因此,屏幕上模块的点击事件也应该根据身份权限进行加载,不同身份动态加载所对用模块的点击事件。

if(sharedPreferences.getBoolean("OnlineBooking", false)){

list_imgs.add(i, R.drawable.index_book);

list_text.add(i,"报表查看");

value.put(i, *Activity.class);

i++;

}

if(sharedPreferences.getBoolean("MobileSales", false)){

list_imgs.add(i, R.drawable.index_yidongxiaoshou);

list_text.add(i,"数据统计");

value.put(i, *Activity.class);

i++;

}

if(sharedPreferences.getBoolean("Workbench", false)){

list_imgs.add(i, R.drawable.index_workbench);

list_text.add(i,"个人中心");

value.put(i, *Activity.class);

i++;

}

用户登录后,将服务返回的权限值保存到sharedPreferences中,权限值为true屏幕进行设配,值为false则不显示,上面代码中将sharedPreferences中的值取出判断是否为true,如果为true则将模块的图片加载到list_imgs,模块中的图标下的文字加载到list_test中,最后将对应模块的Activity加载到SparseArray中。

gridview.setOnItemClickListener(new OnItemClickListener() {

@Override

public void onItemClick(AdapterView> parent, View view,

int position, long id) {

Intent intentcontent=null;

if(isLogin){

intentcontent=new Intent(MainActivity.this,value.get(position));

startActivity(intentcontent);

}else{

Util.showToast(MainActivity.this, getResources().getString(R.string.nologin));

}

}

});

gridview的点击事件按照SparseArray中取值value.get(position)对应的Activity来进行对应的模块加载。

0818b9ca8b590ca3270a3433284dd417.png

身份1对应的用户登录进来显示的模块数

0818b9ca8b590ca3270a3433284dd417.png

身份2对应的用户登录进来显示的模块数,成功的实现了不同的身份加载不同模块,并且点击屏幕模块进入对应的模块的Activty

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值