相关疑难解决方法(0)

使用AbstractMainActivity的Android导航抽屉(调用活动)

我想要一个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)

android navigation-drawer

6
推荐指数
2
解决办法
2万
查看次数

标签 统计

android ×1

navigation-drawer ×1