我正在嘗試創建一個存在于我所有活動中的選單欄。為此,我AppCompatActivity在AppMenu.java檔案中進行了擴展。AppMenu.getMenu(...)這里的想法是在每個活動中呼叫我的自定義方法。
不幸的是,我不知道如何呼叫getMenu我的活動。
應用選單.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
}
}
對于其他背景關系,我正在關注這篇GeeksForGeeks 文章,但我認為在每個活動中重復相同的選單代碼并不是一個好主意。
uj5u.com熱心網友回復:
您所要做的就是擴展您的 AppMenu(我會說這應該稱為 BaseMenuActivity),而不是擴展 AppCompatActivity,它會是這樣的:
public class MainActivity extends AppMenu {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getMenu()
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/463351.html
上一篇:如何在oop中使用字典來存盤資料
下一篇:你如何在UML類圖中顯示封裝?
