向自定义工具栏添加后退按钮的最佳方法是什么?

What is the best way to add a back button to custom toolbars?

所以我知道如何将向后导航按钮添加到我的自定义工具栏,但是必须有一种比在每个活动中复制和粘贴此代码更有效的方法来向多个活动添加功能...

        Toolbar toolbar = findViewById(R.id.tlbar);
        setSupportActionBar(toolbar);
        getSupportActionBar().setDisplayHomeAsUpEnabled(true);
        toolbar.setNavigationOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                finish();
            }
        });

我试过做一个通用的 class 是我创建了一个可以在每个 activity 中调用的函数但是你需要 findViewById 这只能在 activity。对此有什么建议吗?

首先像这样创建一个基地class

public class BaseActivity extends AppCompatActivity{


    public  void setToolbar(@IdRes int toolbarID){
        try {
            Toolbar toolbar = findViewById(toolbarID);
            setSupportActionBar(toolbar);
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            toolbar.setNavigationOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
                    finish();
                }
            });
        }catch (Exception e){
            e.printStackTrace();

        }

    }

}

在使用 BaseActivity class

扩展所有 Activity class 之后
public class LoginNewActivity extends BaseActivity{

    @Override
    protected void onCreate(@Nullable Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setToolbar(R.id.toolbar); //You can call your method like this
    }
}

如果您想了解更多信息,请在 JAVA

中搜索 Inheritance and polymorphism

在清单上的 activity 标签中添加 parentactivityname 并添加值作为 activity 返回时你想去的值 pressed.this 是最好的解决方案你.