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

标签 java android

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

我不想编辑库。我可以让新应用程序具有与库同名的图像,这样新图像就会取代库图像。但这并不能帮助我向布局添加 3 个新按钮,以及向 Activity 添加新功能(同时保留所有旧功能)。

有人有过类似的经历吗?

最佳答案

从库中扩展主屏幕 Activity 。覆盖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);
        ....
        ....
    }
}

关于java - 使用项目作为库,但需要更改 contentView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18387082/

相关文章:

java - 为什么更改类型会导致成​​员的不同用法?

java - GlassFish JDBC 领域组成员资格

android - HTML5 - 安卓屏幕尺寸

java - 当服务触发操作时如何通知 Activity

android - 未找到 google play 服务资源。 admob 程序崩溃

读取大文本文件时的 Java OutOfMemoryError

java - 欧拉计划 8

java - 索引无法正确读取

android - Cocos2dx 安卓 : Get data from file(assets/*) failed

android - Android 中的 cURL SSL 通信等效项