Рисовать панель навигации Android, как создать файл класса Singal и использовать на всей странице - PullRequest
0 голосов
/ 02 ноября 2019

Я хочу использовать этот код на всех страницах своей деятельности, как я могу это сделать? Как создать однострочный код и прошлое на всех страницах, например

Могу ли я создать файл класса с этим кодом и использовать на всей странице

Пожалуйста, добавьте код для меню

activity_order_list.xml


    <?xml version="1.0" encoding="utf-8"?>
<androidx.drawerlayout.widget.DrawerLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:id="@+id/drawer_layout"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:fitsSystemWindows="true"
    >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <androidx.appcompat.widget.Toolbar
            android:id="@+id/toolbar"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:navigationIcon="@drawable/ic_menu"
            android:theme="@style/noActionBar">

            <ImageView
                android:id="@+id/imageView2"
                android:layout_width="100dp"
                android:layout_height="50dp"
                app:srcCompat="@drawable/logoname" />

        </androidx.appcompat.widget.Toolbar>

        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="hello all"></TextView>
    </LinearLayout>

    <com.google.android.material.navigation.NavigationView

        android:id="@+id/nav_view"
        android:layout_height="match_parent"
        android:layout_width="match_parent"
        android:layout_gravity="start"
        app:headerLayout="@layout/nav_header"
        app:menu="@menu/navigation_menu"
        />

</androidx.drawerlayout.widget.DrawerLayout>

order_list.java

            import android.content.Intent;
            import android.os.Bundle;
            import android.view.MenuItem;
            import android.widget.Toast;
            import androidx.annotation.NonNull;
            import androidx.appcompat.app.ActionBarDrawerToggle;
            import androidx.appcompat.app.AppCompatActivity;
            import androidx.appcompat.widget.Toolbar;
            import androidx.drawerlayout.widget.DrawerLayout;
            import com.google.android.gms.auth.api.signin.GoogleSignIn;
            import com.google.android.gms.auth.api.signin.GoogleSignInClient;
            import com.google.android.gms.auth.api.signin.GoogleSignInOptions;
            import com.google.android.gms.tasks.OnCompleteListener;
            import com.google.android.gms.tasks.Task;
            import com.google.android.material.navigation.NavigationView;

            public class order_list extends AppCompatActivity {

                DrawerLayout dwl;
                Toolbar toolbar;
                ActionBarDrawerToggle actionBarDrawerToggle;
                NavigationView navigationView;
                GoogleSignInClient mGoogleSignInClient;
                @Override
                protected void onCreate(Bundle savedInstanceState) {
                    super.onCreate(savedInstanceState);
                    setContentView(R.layout.activity_order_list);


                    GoogleSignInOptions gso = new GoogleSignInOptions.Builder(GoogleSignInOptions.DEFAULT_SIGN_IN)
                            .requestEmail()
                            .build();
                    mGoogleSignInClient = GoogleSignIn.getClient(this, gso);
                    navigationView = findViewById(R.id.nav_view);
                    navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
                        @Override
                        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
                            switch (item.getItemId()){
                                case R.id.home:
                                    Intent home = new Intent(getApplicationContext(), home.class);
                                    startActivity(home);
                                    finish();
                                    break;
                                case R.id.cart:
                                    Intent cart = new Intent(getApplicationContext(), cart.class);
                                    overridePendingTransition( 0, 0);
                                    startActivity(cart);
                                    overridePendingTransition( 0, 0);
                                    finish();
                                    break;
                                case  R.id.Account:
                                    Intent Account = new Intent(getApplicationContext(), user_info.class);
                                    startActivity(Account);
                                    finish();
                                    break;
                                case  R.id.share:
                                    share();
                                    break;
                                case  R.id.help:
                                    Intent help = new Intent(getApplicationContext(), help.class);
                                    startActivity(help);
                                    finish();
                                    break;
                                case  R.id.SingOut:
                                    SingOut();
                                    break;
                            }
                            return false;
                        }
                    });
                    setToolbar();

                }

                private void setToolbar(){
                    dwl = findViewById(R.id.drawer_layout);
                    toolbar = findViewById(R.id.toolbar);
                    setSupportActionBar(toolbar);
                    actionBarDrawerToggle = new ActionBarDrawerToggle(this,dwl,toolbar,R.string.navigation_drawer_open,R.string.navigation_drawer_close);
                    dwl.addDrawerListener(actionBarDrawerToggle);
                    actionBarDrawerToggle.syncState();
                }
                private void share(){
                    try {
                        Intent shareIntent = new Intent(Intent.ACTION_SEND);
                        shareIntent.setType("text/plain");
                        shareIntent.putExtra(Intent.EXTRA_SUBJECT, "My application name");
                        String shareMessage= "\nLet me recommend you this application\n\n";
                        shareMessage = shareMessage + "https://play.google.com/store/apps/details?id=" + BuildConfig.APPLICATION_ID +"\n\n";
                        shareIntent.putExtra(Intent.EXTRA_TEXT, shareMessage);
                        startActivity(Intent.createChooser(shareIntent, "choose one"));
                    } catch(Exception e) {
                        //e.toString();
                    }
                }
            private void SingOut(){
                mGoogleSignInClient.signOut()
                        .addOnCompleteListener(this, new OnCompleteListener<Void>() {
                            @Override
                            public void onComplete(@NonNull Task<Void> task) {
                                Toast.makeText(getApplicationContext(), "sign Out", Toast.LENGTH_SHORT).show();
                                //Ridayrect page in home index page
                                Intent i = new Intent(getApplicationContext(), MainActivity.class);
                                startActivity(i);
                                finish();
                            }
                        });
            }


            }

я хочу использовать этот код на всех страницах своей деятельности, как я могу это сделать? Как создать однострочный код и вставить на всю страницу, например

      Context context = this;
        new menu(context);

Могу ли я создать файл класса с этим кодом и использовать на всей странице

Пожалуйста, добавьте код для меню

...