如何创建 AppCompatActivity 通用的 class

How to create a class common to AppCompatActivity

我正在尝试创建一个存在于我所有活动中的菜单栏。为此,我在 AppMenu.java 文件中扩展了 AppCompatActivity。这里的想法是在每个 activity.

中调用我的自定义 AppMenu.getMenu(...) 方法

不幸的是,我不知道如何在我的活动中调用 getMenu

AppMenu.java:

public class AppMenu extends AppCompatActivity {
    public void getMenu(BottomNavigationView bottomNavigationView, int selected) {

        // Set Home selected
        bottomNavigationView.setSelectedItemId(selected);

        // Perform item selected listener
        bottomNavigationView.setOnItemSelectedListener(new BottomNavigationView.OnItemSelectedListener() {
            @Override
            public boolean onNavigationItemSelected(@NonNull MenuItem item) {

                switch(item.getItemId())
                {
                    case R.id.messages:
                        startActivity(new Intent(getApplicationContext(), dm.class));
                        overridePendingTransition(0,0);
                        return true;
                    case R.id.home:
                        return true;
                    case R.id.profile:
                        startActivity(new Intent(getApplicationContext(), userProfile.class));
                        overridePendingTransition(0,0);
                        return true;
                }
                return false;
            }
        });
    }
}

MainActivity.java

public class MainActivity extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // How can I call getMenu?
        AppMenu m = new AppMenu(); // Can not resolve this
        getMenu(); // Can not resolve this either
    }
}

有关其他上下文,我正在关注 this GeeksForGeeks 文章,但我认为在每个 activity.

中重复相同的菜单代码不是一个好主意

你所要做的就是扩展你的AppMenu而不是扩展AppCompatActivity(我会说这应该叫做BaseMenuActivity),它会是这样的:

public class MainActivity extends AppMenu {

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    getMenu()
}

}