2013-02-11 5 views
0

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.

Répondre

0

réutilisant Clichés d'<include/>Click here

<include layout="@layout/main_layout2"/> 
+0

Muraliganesan: main_layout2 est présent dans une autre application. alors comment puis-je l'utiliser dans mon application principale –

Questions connexes