2014-02-12 65 views
1

我發現如何從另一個應用程序獲取資源。如何從另一個應用程序獲取資源?

我研究了很多關於此的帖子。

因此,提出以下來源。

public class MainActivity extends Activity { 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    Resources themeR = null; 
    try { 
     themeR = getThemeResources("com.example.testskin01", this); 
    } catch (NameNotFoundException e) { 
     e.printStackTrace(); 
    } 

    int resID = themeR.getIdentifier("activity_main2" , "layout", "com.example.testskin01"); 

    View themeLayout = (View)themeR.getLayout(resID); 

    setContentView(themeLayout);  
} 

private static Resources getThemeResources(String themePackage, Context context) throws NameNotFoundException { 
    try { 
     return context.getPackageManager().getResourcesForApplication(themePackage); 
    } catch (Exception e) { 
     return null; 
    } 
} 

我安裝 「com.example.testskin01」 的PAKAGE到測試裝置。
與「activity_main2.xml」。

當調用「resID」時,沒有發生錯誤。

但下一行,從

"View themeLayout = (View)themeR.getLayout(resID);". 

稱爲錯誤,這是錯誤消息。

"java.lang.ClassCastException: android.content.res.XmlBlock$Parser" 

我該如何解決這個問題?請提出一些想法。

回答

0

解決!

這是不正確的。
查看themeLayout =(查看)themeR.getLayout(resID);

這是正確的。
查看themeLayout = LayoutInflater.from(this).inflate(themeR.getLayout(resID),​​null);

相關問題