【问题标题】:How to set the same ToolBar in different activities if I don't want to paste the same code?如果我不想粘贴相同的代码,如何在不同的活动中设置相同的 ToolBar?
【发布时间】:2019-02-09 02:04:56
【问题描述】:

我使用 AppBarLayout & ToolBar 来替换默认的 ActionBar。我有六个活动应该使用我的自定义 ActionBar。但我不想在每个活动的 onCreate() 函数中粘贴相同的代码。 我怎样才能一次做同样的设置?我是 Android 新手,感谢您的帮助!

【问题讨论】:

  • 也许你可以使用 Fragments!

标签: java android mobile-development


【解决方案1】:

您可以使用一个 Activity。还有一堆碎片。

【讨论】:

  • 谢谢,我试试。如果有问题我会再问你:)
【解决方案2】:

试试这个解决方案:

  1. MyBaseActivity:

    public class MyBaseActivity extends AppCompatActivity {
    
    // do not override onCreate here..
    
    protected void setContentViewAndSetUpToolBar(int layoutResID) {
    
    setContentView(layoutResID);
    
    // SetUpToolBar Code Here.
    }
    // menu callbacks Overrides here.
    }
    
  2. 其他活动:

    public class OtherActivity extends MyBaseActivity {
    
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
    
        super.setContentViewAndSetUpToolBar(R.layout.layout_for_activity);
        //..
    }
    //..
    }
    

【讨论】:

  • 我考虑过使用父活动和子活动。由于 BaseActivity 已经设置了自己的布局文件,我应该如何编辑子活动的布局文件?父 Activity 的布局也会被继承吗?
  • 嗨,榆树,父活动有一个方法“setContentViewAndSetUpToolBar”,您可以从子活动的 onCreate 回调中调用它。所以在你的子活动中你不调用 setContentView,你只需将你的布局作为参数传递.. setContentView 将在父级中调用。
  • 你不能同时设置布局。如果您在子类中覆盖了 onCreate 并在其中调用 setContentView,那么所有内容都将被覆盖。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-11-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多