在所有活动中继承导航抽屉

时间:2016-03-15 13:23:57

标签: android

我有一个导航抽屉,现在我希望这个导航抽屉在我的所有活动中,任何人都可以告诉我如何在我的所有活动中继承和使用导航抽屉

here is my code:

public  class NavigationActivity extends AppCompatActivity implements View.OnClickListener{

    protected DrawerLayout mDrawerLayout;

    protected FrameLayout mFrameLayout_ContentFrame;
    protected ActionBarDrawerToggle mActionBarDrawerToggle;
    protected Toolbar mToolbar;
    private LinearLayout mDrawerList2;

    @Override
    protected void onCreate(final Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_navigation);

        mFrameLayout_ContentFrame = (FrameLayout) findViewById(R.id.main_activity_content_frame);
        mDrawerList2 = (LinearLayout) findViewById(R.id.left_drawer2);
        mToolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(mToolbar);


        mDrawerLayout = (DrawerLayout) findViewById(R.id.main_activity_DrawerLayout);
        mDrawerLayout.closeDrawers();
        mDrawerLayout.setStatusBarBackground(R.color.colorPrimary);

        mActionBarDrawerToggle = new ActionBarDrawerToggle
                (
                        this,
                        mDrawerLayout,
                        mToolbar,
                        R.string.drawer_open,
                        R.string.drawer_close
                ) {
            @Override
            public void onDrawerSlide(View drawerView, float slideOffset) {
                // Disables the burger/arrow animation by default
                super.onDrawerSlide(drawerView, 0);
            }
        };

        mDrawerLayout.setDrawerListener(mActionBarDrawerToggle);

        if (getSupportActionBar() != null) {
            getSupportActionBar().setDisplayHomeAsUpEnabled(true);
            getSupportActionBar().setDisplayShowHomeEnabled(true);
            getSupportActionBar().setHomeButtonEnabled(true);
        }
        mActionBarDrawerToggle.syncState();

    }


    @Override
    public void onClick(View v) {

    }
    public boolean onPrepareOptionsMenu(Menu menu) {
        // If the nav drawer is open, hide action items related to the content view
        boolean drawerOpen = mDrawerLayout.isDrawerOpen(mDrawerList2);
        menu.findItem(R.id.action_Aboutus).setVisible(!drawerOpen);
        return super.onPrepareOptionsMenu(menu);
    }
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.menu, menu);
        return true;


    }
    public boolean onOptionsItemSelected(MenuItem item){
        int items = item.getItemId();
        switch(items){

            case R.id.action_Settings:{
                Intent intent = new Intent(this,Settings.class);
                startActivity(intent);

            }break;

            case R.id.action_Contact_us:{
                Intent intent = new Intent(this,Contact.class);
                startActivity(intent);

            }break;

            case R.id.action_Aboutus:{
                Intent intent = new Intent(this,ChartStyle.class);
                startActivity(intent);

            }break;

            case R.id.action_Profile:{
                Intent intent = new Intent(this,ChartStyle.class);
                startActivity(intent);

            }break;
        }

        return super.onOptionsItemSelected(item);
    }


}

<android.support.v4.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/main_activity_DrawerLayout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true">
    <LinearLayout android:id="@+id/left_drawer2"
        android:layout_width="280dp"
        android:layout_height="match_parent"
        android:layout_gravity="start"
        android:orientation="vertical"
        android:choiceMode="singleChoice"
        android:divider="@android:color/transparent"
        android:dividerHeight="0dp"

        android:background="#0F6177"/>

    <!-- The main content view -->
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <include layout="@layout/toolbar" />


        <FrameLayout
            android:id="@+id/main_activity_content_frame"
            android:layout_width="match_parent"
            android:layout_height="match_parent" />

    </LinearLayout>

    <!-- The navigation drawer -->


</android.support.v4.widget.DrawerLayout>

我要继承导航器的类:

public class Contact extends NavigationActivity implements View.OnClickListener {
    private EditText mName,mNumber,mEmail,mMessage;
    private FancyButton mSbmt;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

1 个答案:

答案 0 :(得分:1)

要继承导航抽屉,您需要使用碎片。因为我们可以在单个活动中使用多个片段。因此,您无法在NavigationActivity内设置其他活动。因此,请使用多个片段并从NavigationActivity或其他片段中调用它们。