如何在android中访问Activity中的BaseActivity工具栏

如何在android中访问Activity中的BaseActivity工具栏,android,Android,我想访问MyActivity中的工具栏,它扩展了BaseActivity,可以访问MainActivity中的工具栏 基本活动 public abstract class BaseActivity extends AppCompatActivity{ @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInsta

我想访问MyActivity中的工具栏,它扩展了BaseActivity,可以访问MainActivity中的工具栏

基本活动

  public abstract class BaseActivity extends AppCompatActivity{
    @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            setContentView(R.layout.fragment_container_base);
            Toolbar toolBar = (Toolbar) findViewById(R.id.tool_bar);
    }
    }
我的活动

 public class MyActivity extends BaseActivity {
     @Override
        protected void onCreate(@Nullable Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
       // here i want to access BaseActivity  Toolbar
    }
BaseActivity
中将工具栏设置为:

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.fragment_container_base);
   Toolbar toolBar = (Toolbar) findViewById(R.id.tool_bar);
   setSupportActionBar(toolbar);
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   ActionBar actionBar = getSupportActionBar();
}
然后在
main活动中的
super.onCreate
之后获取工具栏:

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   setContentView(R.layout.fragment_container_base);
   Toolbar toolBar = (Toolbar) findViewById(R.id.tool_bar);
   setSupportActionBar(toolbar);
}
@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
   super.onCreate(savedInstanceState);
   ActionBar actionBar = getSupportActionBar();
}
您不能将
操作栏
强制转换为
工具栏
,但如果确实要访问工具栏,请将其更改为实例变量:

protected Toolbar toolbar;

@Override
protected void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.fragment_container_base);
    toolBar = (Toolbar) findViewById(R.id.tool_bar);
    // ...

使用
protected
修饰符,您可以访问
main活动中的
toolbar

如何将cast actionBar键入工具栏@阿伦不,你不能。我不建议这样做,但如果您真的想这样做,您可以使用受保护的修饰符将工具栏声明为实例变量。