我想要一个AbstractMainActivity来创建导航抽屉.在那里我还应该处理菜单项的点击,然后调用新的活动.在那些活动中,我想再次使用相同的导航抽屉.
我将使用AbstractMainActivity扩展Subclasses并以不同的方式从每个子类调用getLayoutResourceID(如下所示:android如何创建自己的Activity并扩展它?).
问题是,现在在我想构建导航抽屉的AbstractMainActivity中,我没有任何访问导航抽屉布局(xml)元素的权限,因为我当然希望为子类提供不同的基本布局.
我是否需要在所有子类布局文件中"包含布局"?但这不起作用,如果我想在导航抽屉中使用活动而不是片段,我该怎么办?
public abstract class MainActivity extends Activity {
private String[] menuItems;
private DrawerLayout mDrawerLayout;
private ListView mDrawerList;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
//setContentView(R.layout.activity_main);
setContentView(getLayoutResourceId());
menuItems = getResources().getStringArray(R.array.menu_items);
mDrawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);
mDrawerList = (ListView) findViewById(R.id.left_drawer);
// Set the adapter for the list view
mDrawerList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, menuItems));
// Set the list's click listener
mDrawerList.setOnItemClickListener(new DrawerItemClickListener());
}
protected abstract int getLayoutResourceId();
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items …Run Code Online (Sandbox Code Playgroud)