如何在我的Android应用程序的所有活动中访问抽屉布局?

时间:2016-03-04 14:42:37

标签: android tabs navigation-drawer

我正在开发一个测验应用程序,其中包括所有活动中的抽屉布局。抽屉中的内容是相同的,我希望它在所有活动中。通过搜索谷歌我找到了一个解决方案,在一个活动中声明抽屉并继承在所有活动中,它也运作良好。我附上下面的代码。 现在的问题是我需要Tab在一个活动中,所以我不知道如何在这里继承2个活动[这是不可能的]。 任何人都可以帮我解决这个问题吗?

简单地说, 我有一个选项,如果我想要两个课,我只能扩展我的课程吗?

DrawActivity.java

public void onCreateDrawer() {

    // R.id.drawer_layout should be in every activity with exactly the same id.
    drawerLayout = (DrawerLayout) findViewById(R.id.drawer_layout);

    drawerToggle = new ActionBarDrawerToggle(DrawActivity.this,drawerLayout,R.drawable.ic_drawer2,R.string.app_name,R.string.app_name)
    {
        public void onDrawerClosed(View view)
        {
            getActionBar().setTitle(R.string.app_name);
        }

        public void onDrawerOpened(View drawerView)
        {
            getActionBar().setTitle(R.string.app_name);
        }
    };
    drawerLayout.setDrawerListener(drawerToggle);
    getActionBar().setDisplayHomeAsUpEnabled(true);
    getActionBar().setHomeButtonEnabled(true);
    //getActionBar().setBackgroundDrawable(new ColorDrawable(Color.RED));
    SharedPreferences settings = getSharedPreferences(PREFS_NAME, 0);
    if (settings.getString("logged","").toString().equals("logged")) {
        layers = getResources().getStringArray(R.array.layers_array1);
        flag=0;
    }
    else {
        layers = getResources().getStringArray(R.array.layers_array);
        flag=1;
    }

    drawerList = (ListView) findViewById(R.id.left_drawer);
    drawerList.setAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1,layers));
    drawerList.setSelector(R.color.darkgreen);
    drawerList.setOnItemClickListener(new AdapterView.OnItemClickListener() {
        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long arg3) {
            selectItemFromDrawer(pos);
        }
    });
}

@Override
public boolean onOptionsItemSelected(MenuItem item) {

    if (drawerToggle.onOptionsItemSelected(item)) {
        return true;
    }
    return super.onOptionsItemSelected(item);

}

@Override
protected void onPostCreate(Bundle savedInstanceState) {
    super.onPostCreate(savedInstanceState);
    drawerToggle.syncState();
}

@Override
public void onConfigurationChanged(Configuration newConfig) {
    super.onConfigurationChanged(newConfig);
    drawerToggle.onConfigurationChanged(newConfig);
}

0 个答案:

没有答案