使用另一个类中的方法实现工具栏

时间:2019-07-08 21:50:40

标签: java android

我希望我的MainActivity类更加透明,因此,不要在onCreate方法的MainAcitivty类中,通过以下方式实现工具栏:

Toolbar myToolbar = findViewById(R.id.toolbar);
setSupportActionBar(myToolbar);
getSupportActionBar().setDisplayShowTitleEnabled(false);

我用一种方法创建了一个新的SetToolbar类:

class SetToolbar extends AppCompatActivity {

    void methodToolbar() {

        Toolbar myToolbar = findViewById(R.id.toolbar);
        setSupportActionBar(myToolbar);
        getSupportActionBar().setDisplayShowTitleEnabled(false);
    }
}

然后是我想在onCreate方法的MainActivity类中调用的方法:

SetToolbar test = new SetToolbar();
test.methodToolbar();

有这种可能吗?我不知道该怎么办,因为我没有收到有关该错误的任何信息,但是该应用程序不想打开。

2 个答案:

答案 0 :(得分:0)

我不太了解您的意思,但是我想您想避免MainActivity中无用的代码。 您所做的不是很好,最好让MainActivity继承自您不好称的SetToolbar的BaseActivity。

因此,创建您的母亲活动

class BaseActivity extends AppCompatActivity {

    protected void methodToolbar() {

        Toolbar myToolbar = findViewById(R.id.toolbar);
        setSupportActionBar(myToolbar);
        getSupportActionBar().setDisplayShowTitleEnabled(false);
    }
}

还有您的MainActivity

class MainActivity extends BaseActivity 
  onCreate(){
    ...
    methodToolbar()
    ...
  }

在MainActivity的布局中,您必须添加工具栏布局,甚至创建另一个布局,并通过将该布局添加到所有活动中。 并且不要忘记在清单中声明您的活动。

答案 1 :(得分:0)

我不确定,但是尝试一下,首先,编辑SetToolBar类,使其像这样

class SetToolbar  {
    Context context;
    Toolbar toolbar;

    public SetToolbar(Context context, Toolbar toolbar)
    {
        this.context = context;
        this.toolbar = toolbar;
    }

void methodToolbar() {
       ((AppCompatActivity)context).setSupportActionBar(this.toolbar);
       ((AppCompatActivity)context).getSupportActionBar().setDisplayShowTitleEnabled(false);
    }
}

在onCreate()的MainAcivity中

new SetToolbar(getBaseContext(), (Toolbar)findViewById(R.id.my_toolbar)).methodToolbar();