您好,登錄后才能下訂單哦!
項目需求為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來進行對應的模塊加載。
身份1對應的用戶登錄進來顯示的模塊數
身份2對應的用戶登錄進來顯示的模塊數,成功的實現了不同的身份加載不同模塊,并且點擊屏幕模塊進入對應的模塊的Activty
以上這篇Android根據不同身份配置APP對應的不同模塊方法就是小編分享給大家的全部內容了,希望能給大家一個參考,也希望大家多多支持億速云。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。