Android根據(jù)不同身份配置APP對(duì)應(yīng)的不同模塊方法
項(xiàng)目需求為APP的使用單位有很多部門,各個(gè)部分的業(yè)務(wù)也是獨(dú)立的,所以開發(fā)的APP中如果把所有的模塊都顯示出來(lái)然后再做權(quán)限分配,會(huì)顯得屏幕全是各個(gè)模塊,而使用的人員只使用其中一到兩個(gè),這樣給使用者帶來(lái)了不便,那么如何能根據(jù)不同業(yè)務(wù)部門不同身份的人登錄APP后,顯示對(duì)應(yīng)身份所能看到的模塊就變成本次要解決的問(wèn)題了。
解決思路:APP的主頁(yè)用gridview來(lái)動(dòng)態(tài)加載模塊,然后通過(guò)list給gridview進(jìn)行適配,最后在屏幕上顯示出來(lái);
但是問(wèn)題來(lái)了,如何保證點(diǎn)擊對(duì)應(yīng)模塊就進(jìn)入相對(duì)應(yīng)的模塊內(nèi),例如張三的權(quán)限是個(gè)人中心和數(shù)據(jù)查看兩個(gè)模塊,而李四的權(quán)限是數(shù)據(jù)統(tǒng)計(jì),那么張三登錄進(jìn)去時(shí)屏幕第一個(gè)顯示個(gè)人中心,第二個(gè)顯示數(shù)據(jù)查看,點(diǎn)擊個(gè)人中心進(jìn)入對(duì)應(yīng)的個(gè)人中心,點(diǎn)擊數(shù)據(jù)查看進(jìn)入對(duì)應(yīng)的數(shù)據(jù)查看;而李四登錄進(jìn)入是屏幕只顯示數(shù)據(jù)統(tǒng)計(jì),如何做到點(diǎn)擊數(shù)據(jù)統(tǒng)計(jì)進(jìn)入對(duì)應(yīng)的數(shù)據(jù)統(tǒng)計(jì)而不是進(jìn)入個(gè)人中心。
因此,屏幕上模塊的點(diǎn)擊事件也應(yīng)該根據(jù)身份權(quán)限進(jìn)行加載,不同身份動(dòng)態(tài)加載所對(duì)用模塊的點(diǎn)擊事件。
if(sharedPreferences.getBoolean("OnlineBooking", false)){ list_imgs.add(i, R.drawable.index_book); list_text.add(i,"報(bào)表查看"); value.put(i, *Activity.class); i++; } if(sharedPreferences.getBoolean("MobileSales", false)){ list_imgs.add(i, R.drawable.index_yidongxiaoshou); list_text.add(i,"數(shù)據(jù)統(tǒng)計(jì)"); value.put(i, *Activity.class); i++; } if(sharedPreferences.getBoolean("Workbench", false)){ list_imgs.add(i, R.drawable.index_workbench); list_text.add(i,"個(gè)人中心"); value.put(i, *Activity.class); i++; }
用戶登錄后,將服務(wù)返回的權(quán)限值保存到sharedPreferences中,權(quán)限值為true屏幕進(jìn)行設(shè)配,值為false則不顯示,上面代碼中將sharedPreferences中的值取出判斷是否為true,如果為true則將模塊的圖片加載到list_imgs,模塊中的圖標(biāo)下的文字加載到list_test中,最后將對(duì)應(yīng)模塊的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的點(diǎn)擊事件按照SparseArray中取值value.get(position)對(duì)應(yīng)的Activity來(lái)進(jìn)行對(duì)應(yīng)的模塊加載。
身份1對(duì)應(yīng)的用戶登錄進(jìn)來(lái)顯示的模塊數(shù)
身份2對(duì)應(yīng)的用戶登錄進(jìn)來(lái)顯示的模塊數(shù),成功的實(shí)現(xiàn)了不同的身份加載不同模塊,并且點(diǎn)擊屏幕模塊進(jìn)入對(duì)應(yīng)的模塊的Activty
以上這篇Android根據(jù)不同身份配置APP對(duì)應(yīng)的不同模塊方法就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Android中EditText的drawableRight屬性設(shè)置點(diǎn)擊事件
這篇文章主要介紹了Android中EditText的drawableRight屬性的圖片設(shè)置點(diǎn)擊事件,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2016-10-10Android Intent 用法全面總結(jié)及實(shí)例代碼
這篇文章主要介紹了Android Intent 用法全面總結(jié)的相關(guān)資料,并附實(shí)例代碼,需要的朋友可以參考下2016-09-09Android ListView的OnItemClickListener詳解
這篇文章主要介紹了Android ListView的OnItemClickListener詳解的相關(guān)資料,涉及到OnItemClickListener的position和id參數(shù)做詳細(xì)的解釋的知識(shí)點(diǎn),非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友參考下2016-07-07

Android ListView實(shí)現(xiàn)下拉加載功能