将资源添加到从项目创建的库中

时间:2013-09-24 13:47:20

标签: java android resources libraries

我有下一个问题: 我想获得一个基于android项目的库,并在另一个项目中用作“外部”库

  1. 有可能吗?

  2. 如果有可能 - 我的MainProblem:如何将资源添加到库中?项目属性的方式 - > Android - > “As Library”仅添加.class-files!

  3. MySituation:

    public class ClassForLibrary extends Activity{
    
          onCreate(){
             setContentView(R.layout.library_activity_layout);
          }
    
          method1(){
          }
    
          method2(){
          }
    }
    

    所以,我想要一个包含两个文件的库:ClassForLibrary.class和library_activity_layout.xml

    接下来我想使用Build Path ...

    添加这个库

    并以

    开始申请
    public class MainActivity extends ClassForLibrary {
    
        . . . . . . . . . . 
    
    }
    

    我尝试了很多代码构造,但最接近的情况是

    Caused by: android.content.res.Resources$NotFoundException: Resource ID #0x7f030001.
    

    #0x7f030001是我的library_activity_layout.xml,我手动将其放入创建的库中。

    Сan任何人帮助我?

1 个答案:

答案 0 :(得分:1)

您无法访问其他应用程序中的私有库文件,除非库本身公开它们。在您的情况下,您的库需要创建一个函数,让应用程序用它自己的布局替换布局。类似的东西:

public class ClassForLibrary extends Activity{

  onCreate(){
     setContentView(R.layout.library_activity_layout);
  }

  public overrideContentView(ViewGroup root){
      .... replace root view with the one passed in....
  }

  method1(){
  }

  method2(){
  }
}