的問題得到片段:我有MainApp與FrameLayout裏,是我可以輕鬆把MainFragments.class從MainApp。另外我有PlugInApp的外部停車,我有一些其他的PlugInFragment.class。我需要將此PlugInFragment.class放入MainApp FrameLayot中。看起來很簡單,但事實並非如此。如何從外部PAKAGE
我無法創建從外部封裝在MainApp片段對象。真的需要幫助。請。
..update ..
好吧,我試試負載PlugiFragment.class使用DexClassLoader。一般情況下,它的工作。我可以輕鬆運行其他類,或者類的一些方法,但如果我嘗試加載PluginFragment,我有錯誤: - 無法解析我PlugInFragment,這是extendet從基本的片段超。我認爲這是因爲Fragment類在andrid-support-v4.jar中,它就像一個私有庫,不在主android.jar中。我嘗試重新加載,清理,刷新和其他「跳舞」方法 - 完全沒有幫助。有任何想法嗎?
..finish ..
好的,我做到了! YEEEH!
首先停止使用片段從andrid.support.v4,我使用android.app定期片段,這消除了「無法解決超錯誤」。然後我在PluginFragment做出一些改變:
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
int fragment_layoytRID = 0;
try {
//TODO in layout should not use string/color resourses
fragment_layoytRID = container
.getContext()
.getPackageManager()
.getResourcesForApplication(parkageName)
.getIdentifier("plagin_fragment", "layout",
parkageName);
Log.w("PLUGIN", "fragment_layoytRID: " + fragment_layoytRID);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
final XmlResourceParser parser = container.getContext()
.getPackageManager()
.getXml(parkageName, fragment_layoytRID, null);
return inflater.inflate(parser, container, false);
}
,這是因爲佈局從外部mainApp inflaiting ..它的工作..唯一的問題,在這種情況下的佈局我以前不覺得@string/@color和其他資源的開發..
爲什麼?如果您導入** PlugInFragment.class **包,然後將其用作** MainFragments.clas **的片段,是否存在問題?你發現了什麼樣的問題? –
你已經試過了什麼?你是否想要在FrameLayout中獲取片段? –
插件的一個想法是使用插件而不改變主應用程序,因爲我不能在項目中添加插件,並編譯新的主應用程序。主要應用程序是complit - 不可更改。插件是另一個apk,從插件到mainapp我可以得到活動,servis,brodcast,提供者,resouses,classnames ..從mainapp我可以加載插件actvity意圖 - 沒有問題,但就像加載與她的UI蟻函數下一個應用程序。 。我想加載插件到mainapp - 在frameLayout喜歡加入pluginFragment - 在這種情況下,它仍然將mainApp用戶界面和funcional - 與額外plagin insaid ..更優雅的我.. – user3337390