我有導航抽屜菜單和6個活動。我想創建一個抽象活動類,並將所有抽屜菜單代碼移動到它,然後對其進行擴展。如何創建抽象活動類並將其擴展到所有活動?
這是我的主要activity.java和我的抽屜在此活動中的代碼。
public class MainActivity extends AppCompatActivity {
private Toolbar toolbar;
protected DrawerLayout drawerLayout;
NavigationView navigationView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
getWindow().getDecorView().setLayoutDirection(View.LAYOUT_DIRECTION_RTL);
TextView tv = (TextView)findViewById(R.id.textView);
Typeface textfont = Typeface.createFromAsset(getAssets(),"fonts/B Roya_YasDL.com.ttf");
tv.setTypeface(textfont);
toolbar = (Toolbar) findViewById(R.id.toolbar);
drawerLayout = (DrawerLayout) findViewById(R.id.a1);
setSupportActionBar(toolbar);
getSupportActionBar().setDisplayHomeAsUpEnabled(true);
getSupportActionBar().setHomeAsUpIndicator(R.drawable.ic_more_vert_black_24dp);
navigationView = (NavigationView) findViewById(R.id.a2);
navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
@Override
public boolean onNavigationItemSelected(@NonNull MenuItem item) {
item.setChecked(true);
drawerLayout.closeDrawer(Gravity.RIGHT);
switch (item.getItemId()){
case R.id.intro:
Intent i = new Intent(MainActivity.this, IntroActivity.class);
startActivity(i);
break;
}
return false;
}
});
}
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
public boolean onOptionsItemSelected(MenuItem item) {
int id = item.getItemId();
if (id == R.id.khat) {
if (drawerLayout.isDrawerOpen(Gravity.RIGHT)) {
drawerLayout.closeDrawer(Gravity.RIGHT);
}
else {
drawerLayout.openDrawer(Gravity.RIGHT);
}
return super.onOptionsItemSelected(item);
}
else {
Toast.makeText(getApplicationContext(),"somthing",Toast.LENGTH_LONG).show();
}
return true;
}
public void onBackPressed(){
if (drawerLayout.isDrawerOpen(Gravity.RIGHT)){
drawerLayout.closeDrawer(Gravity.RIGHT);
}else {super.onBackPressed();}
}
,這是我的第二個例子活動:
public class IntroActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_intro);
}
如何創建一個抽象類的活動,並插入我的抽屜裏的代碼,而從我想任何活動稱呼呢?
你會發現navigation_drawer_items和drawer_header在另一個答案,因爲我忘了他們 –
請注意,您可以編輯答案,所以如果你的兩個項目應該走在一起,編輯一個包含另一個,然後刪除備用的一個。 – halfer
謝謝。我從你的答案中解決了我的問題。非常感謝你 – Arshiiia13