Supposons que dans mon application principale j'ai une mise en page "main_layout.xml" et dans ma peau (une autre application) j'ai une mise en page "main_layout2.xml".Comment ajouter une disposition xml (setContentView()) d'une autre application (skin) à l'application principale?
Maintenant, comment puis-je mettre setContentView(main_layout2)
dans mon application principale si l'application de la peau est installé et si je sais pas installé alors setContentView(R.layout.main_layout);
ceci:
[In Theme package]
1. set action for activity, for example: my.package.theme
2. add all files you need for this theme
[In main app]
// Create intent with your action: my.package.theme
Intent intent = new Intent();
intent.setAction("my.package.theme");
// Get list of all installed packages with your themes
List<ResolveInfo> lresolve = pm.queryIntentActivities(intent, 0);
int size = lresolve.size();
for (int i = 0; i < size; i++) {
ApplicationInfo appInfo = lresolve.get
(i).activityInfo.applicationInfo;
try {
Resources resSkin = pm.getResourcesForApplication(appInfo);
int backres = resSkin.getIdentifier("my_background", "drawable",
appInfo.packageName);
// getting background from theme package
Drawable background = resSkin.getDrawable(backres);
} catch (NameNotFoundException e) {
e.printStackTrace();
}
}
par code ci-dessus je peux changer l'image. Mais comment infiltrer une mise en page XML d'une autre application à l'application principale.
s'il vous plaît aidez-moi dans ce (un exemple de code ou des exemples de liens, il serait apprécié).
Merci d'avance.
Muraliganesan: main_layout2 est présent dans une autre application. alors comment puis-je l'utiliser dans mon application principale –