Android根据不同身份配置APP对应的不同模块方法

作者:gracefullum 时间:2023-09-25 05:22:36 

项目需求为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来进行对应的模块加载。

Android根据不同身份配置APP对应的不同模块方法

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

Android根据不同身份配置APP对应的不同模块方法

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

来源:https://blog.csdn.net/qq_27478765/article/details/72763529

标签:Android,配置,APP
0
投稿

猜你喜欢

  • 浅析Java中的异常处理机制

    2021-08-19 05:42:48
  • java实现操作系统的短进程作业调度示例分享

    2022-05-30 21:02:19
  • C#泛型语法详解

    2023-01-28 18:20:12
  • WPF使用DrawingContext实现二维绘图

    2021-06-08 15:04:27
  • 解决Android Studio电脑不支持HAXM的问题

    2022-05-28 04:48:51
  • springboot+jwt+springSecurity微信小程序授权登录问题

    2022-10-13 03:36:22
  • spring cloud gateway 限流的实现与原理

    2023-04-10 16:47:56
  • 带你走进Maven的大门-最全Maven配置及集成idea工具总结

    2022-12-06 08:41:40
  • Java卡片布局管理器解释及实例

    2022-03-12 18:26:19
  • 分享Android仿刮奖效果控件

    2021-12-15 16:00:16
  • elasticsearch集群cluster示例详解

    2023-12-11 16:49:27
  • Android利用Hero实现列表与详情页无缝切换动画

    2023-07-22 08:04:39
  • Java过滤器模式原理及用法实例

    2023-03-07 12:15:07
  • Android 自定义View实现多节点进度条功能

    2022-05-04 17:13:37
  • 利用C#实现绘制出地球旋转效果

    2022-10-01 14:21:27
  • java 微信随机红包算法代码实例

    2022-12-03 12:29:08
  • Java的Struts框架中<results>标签的使用方法

    2022-04-16 16:08:22
  • Android UI效果之绘图篇(四)

    2022-08-07 19:26:12
  • Java8 使用 stream().sorted()对List集合进行排序的操作

    2022-11-23 20:57:11
  • Android中使用Matrix控制图形变换和制作倒影效果的方法

    2022-11-23 07:35:23
  • asp之家 软件编程 m.aspxhome.com