我有一個android應用程序項目,也有一些android庫項目。每個圖書館項目都有自己的活動和資源。我已經實現了NavigationDrawer
並希望在所有活動中都擁有它,所以我創建了一個具有抽屜的基礎項目(android庫項目)(按照此答案中的指導:Same Navigation Drawer in different Activities)。然後,這個想法是,每個子項目(Android庫項目)將從基地擴展,但在這一點上,我正在打循環引用問題。如何避免項目之間的循環引用?
我有一個類似的結構,因爲這形象:
有沒有問題,有子項目每個活動從基礎庫擴展,但問題是,基本庫還需要知道的活動(因此循環引用),這樣我就可以在NavigationDrawer
處理點擊,類似的東西:
mDrawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
switch (position) {
case 0:
Intent intent = new Intent(this, SubProjectOneActivityOne.class);
startActivity(intent);
finish();
break;
case 1:
Intent intent1 = new Intent(this, SubProjectOneActivityTwo.class);
startActivity(intent1);
break;
case 2:
Intent intent2 = new Intent(this, SubProjectTwoActivityOne.class);
startActivity(intent2);
break;
default:
break;
}
}});
所以此刻我打與THI一個死衚衕的方法。是否有可能超載子項目中的點擊事件?有人有其他建議嗎?
我通過提供一個'router'對象來處理這個問題。基礎項目可以公開那個,其他每個模塊都可以註冊一個路由。這些路線可以執行可能啓動或可能不啓動活動的動作。 – daentech
@daentech你能分享更多的信息和可能的代碼嗎? – Apostrofix
以下是一些示例代碼。我希望它能夠編譯,但我刪除了一些不必要的代碼。你可以在你的基礎項目中將你的路線命名爲常量,並在其他項目中引用它們? https://gist.github.com/daentech/f372f3a6529d08979f1c這也可以使用'/ route/'來處理通配符路由,並將數據作爲'getData()' –
daentech