使用项目作为库,但需要更改contentView

时间:2013-08-22 17:29:54

标签: java android

我有一个android项目作为库,这个库包含一个主屏幕。新的应用程序需要这个主屏幕(以及库中的其他所有内容),但是还需要对所有图形进行更改,以及添加一些新按钮,我该怎么做?

我不想编辑图书馆。我可以让新应用程序具有与库同名的图像,因此新图像会覆盖库图像。但这并没有帮助我在布局中添加3个新按钮,以及活动的新功能(同时保留所有旧功能)。

任何人都有这方面的经验吗?

1 个答案:

答案 0 :(得分:1)

从库中扩展home screen活动。覆盖onCreate(Bundle)

public class NewMainActivity extends HomeScreenActivityFromLibrary {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        View viewFromLibrary = getLayoutInflater().inflate(
                                      library.package.name.R.layout.home_screen, null);

        // Make changes; add Buttons to `viewFromLibrary`
        // Add functionality to Buttons; setOnClickListeners

        setContentView(viewFromLibrary);
    }
}

根据HomeScreenActivityFromLibrary的设置方式,您可能必须覆盖其他方法。您可以做的另一件事是:只需将HomeScreenActivityFromLibrary中使用的布局文件复制到项目的res/layout文件夹即可。在xml文件中添加其他小部件(按钮等)。在这种情况下,您需要做的就是:

public class NewMainActivity extends HomeScreenActivityFromLibrary {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        setContentView(R.layout.newly_created_xml_file);

        Button b1 = (Button) findViewById(R.id.b1_id);
        ....
        ....
    }
}