如何创建 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()
}
}
我正在尝试创建一个存在于我所有活动中的菜单栏。为此,我在 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()
}
}