gpt4 book ai didi

android - 在每个 Activity 上调用工具栏

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:34:49 25 4
gpt4 key购买 nike

我的应用程序有一个应该出现在每个 View 上的工具栏。目前,我在我的每个 Activity 的 onCreate() 方法中执行以下操作:

Toolbar toolbar = (Toolbar) findViewById(R.id.toolbar);
setSupportActionBar(toolbar);

这是否需要在每个 Activity 的每个 onCreate() 方法中完成,还是有更简单的方法?另外,作为附带问题,我如何在工具栏中实现“后退”功能,使用户在单击它时返回一个操作?

最佳答案

Activity 创建基类

public abstract class BaseActivity extends AppCompatActivity {

Toolbar toolbar;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(getLayoutResource());
configureToolbar();
}

protected abstract int getLayoutResource();

private void configureToolbar() {
toolbar = (Toolbar) findViewById(R.id.toolbar);
if (toolbar != null) {
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
FragmentManager fm = getSupportFragmentManager();
if (fm != null && fm.getBackStackEntryCount() > 0) {
fm.popBackStack(null, FragmentManager.POP_BACK_STACK_INCLUSIVE);
} else {
finish();
}
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}

并且在每个 Activity 中扩展此 BaseActivity 以获取 ToolBar 并实现返回功能。

最后不要忘记在每个 Activity layout 中包含 ToolBar

编辑:

在每个 Activity 中覆盖该方法 getLayoutResource() 并传递布局 ID。

public class MainActivity extends BaseActivity {

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

@Override
public int getLayoutResource() {
return R.layout.activity_main;
}

关于android - 在每个 Activity 上调用工具栏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32367041/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com