为了账号安全,请及时绑定邮箱和手机立即绑定

如何将布局作为函数参数传递

如何将布局作为函数参数传递

宝慕林4294392 2023-06-21 13:11:53
这可能是一个非常简单的问题,但我坚持这个问题。我有一个在我的应用程序中被多次调用的函数。我想重构它,但我不知道如何将 的值findViewById作为参数传递。请问你知道怎么做吗?public void configureToolbar() {        mToolbar = (Toolbar) findViewById(R.id.activitySettingsToolbar);        mToolbar.setElevation(0);        mToolbar.setTitle("");        setSupportActionBar(mToolbar);    }编辑:到目前为止,我可以configureToolbar(Activity activity, Toolbar mToolbar)用这个结果来做到这一点:public void configureToolbar(Activity activity, Toolbar toolbar) {       toolbar= (Toolbar) findViewById(R.id.activitySettingsToolbar);       toolbar.setElevation(0);       toolbar.setTitle("");       ((AppCompatActivity)activity).setSupportActionBar(toolbar);   }但是如果我想改变我的布局,我需要能够将它作为参数传递:/
查看完整描述

3 回答

?
蓝山帝景

TA贡献1843条经验 获得超7个赞

您可能会通过工具栏的 ID:


public void configureToolbar(int id) {

    mToolbar = (Toolbar) findViewById(id);

    mToolbar.setElevation(0);

    mToolbar.setTitle("");


    setSupportActionBar(mToolbar);

}

那么你可以这样调用:


configureToolbar(R.id.yourToolbarId)// in your case this is R.id.activitySettingsToolbar or any other toolbar Id

从OP编辑后:


 public void configureToolbar(Activity activity, int toolbarId) {

 Toolbar toolbar= (Toolbar) activity.findViewById(toolbarId);

   if(toolbar != null) { //credit to @Gabriele Mariotti, I missed this check

   toolbar.setElevation(0);

   toolbar.setTitle("");


   ((AppCompatActivity)activity).setSupportActionBar(toolbar);

 }

}

然后你称之为:


configureToolbar(yourActivity, R.id.yourToolbarId)


查看完整回答
反对 回复 2023-06-21
?
qq_花开花谢_0

TA贡献1835条经验 获得超7个赞

你可以这样做:


private void setupToolbar(int resource){

    Toolbar toolbar = findViewById(resource);

    if (toolbar != null){

      //....

    }

}


查看完整回答
反对 回复 2023-06-21
?
拉风的咖菲猫

TA贡献1995条经验 获得超2个赞

在参数中传递布局的最佳方法是使用@LayoutRes注解:

fun buildDialog(@LayoutRes viewId : Int) {

}


查看完整回答
反对 回复 2023-06-21
  • 3 回答
  • 0 关注
  • 129 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信