简体   繁体   English

两个 oncreate(bundle savedinstancestate) 在同一个活动中?

[英]Two oncreate(bundle savedinstancestate) in the same activity?

I'm very new to android development and have ran into an issue that I can't seem to get around or get my head around the resolution.我对 android 开发非常陌生,并且遇到了一个我似乎无法解决或无法解决问题的问题。

I'm trying to add a navigation drawer to an activity that has a bottom navigation bar in the java program.我正在尝试将导航抽屉添加到 java 程序中具有底部导航栏的活动。 I've got the XML looking good and working but the below java is reporting the following error:我的 XML 看起来不错并且工作正常,但下面的 java 报告以下错误:

'onCreate(Bundle)' is already defined in 'MyApp' 

which I understand and can see but I don't know how to resolve it - is it possible?我理解并且可以看到但我不知道如何解决它 - 有可能吗?

public class Dash extends AppCompatActivity {
    private DrawerLayout drawer;

    Button signout;
    ChipNavigationBar chipNavigationBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dash);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        signout=findViewById(R.id.logout);
        signout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                FirebaseAuth.getInstance().signOut();
                startActivity(new Intent(getApplicationContext(),Existing.class));
                finish();
            }
        });

        chipNavigationBar = findViewById(R.id.bottom_nav_menu);
        chipNavigationBar.setItemSelected(R.id.bottom_nav_menu, true);
        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new NewsFragment()).commit();
        bottomMenu();
    }

    private void bottomMenu() {

        chipNavigationBar.setOnItemSelectedListener(new ChipNavigationBar.OnItemSelectedListener() {
            @Override
            public void onItemSelected(int i) {
                Fragment fragment = null;
                switch (i) {
                    case R.id.bottom_nav_menu:
                        fragment = new HomeFragment();
                        break;

                    case R.id.bottom_nav_news:
                        fragment = new NewsFragment();
                        break;

                    case R.id.bottom_nav_profile:
                        fragment = new ProfileFragment();
                        break;
                }
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, fragment).commit();
            }
        });

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

        Toolbar toolbar = findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        drawer = findViewById(R.id.drawer_layout);

        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar,
                R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.addDrawerListener(toggle);
        toggle.syncState();
    }
    @Override public void onBackPressed(){
            if (drawer.isDrawerOpen(GravityCompat.START)) {
                drawer.closeDrawer(GravityCompat.START);
            } else {
                super.onBackPressed();
            }
        }
    }

Remove one OnCreate(....)删除一个OnCreate(....)

Try Below Code:试试下面的代码:

public class Dash extends AppCompatActivity {
    private DrawerLayout drawer;

    Button signout;
    ChipNavigationBar chipNavigationBar;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_dash);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
        signout=findViewById(R.id.logout);
        drawer = findViewById(R.id.drawer_layout);

        ActionBarDrawerToggle toggle = new ActionBarDrawerToggle(this, drawer, toolbar,
                R.string.navigation_drawer_open, R.string.navigation_drawer_close);
        drawer.addDrawerListener(toggle);
        toggle.syncState();
        signout.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                FirebaseAuth.getInstance().signOut();
                startActivity(new Intent(getApplicationContext(),Existing.class));
                finish();
            }
        });

        chipNavigationBar = findViewById(R.id.bottom_nav_menu);
        chipNavigationBar.setItemSelected(R.id.bottom_nav_menu, true);
        getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container,new NewsFragment()).commit();
        bottomMenu();
    }

    private void bottomMenu() {

        chipNavigationBar.setOnItemSelectedListener(new ChipNavigationBar.OnItemSelectedListener() {
            @Override
            public void onItemSelected(int i) {
                Fragment fragment = null;
                switch (i) {
                    case R.id.bottom_nav_menu:
                        fragment = new HomeFragment();
                        break;

                    case R.id.bottom_nav_news:
                        fragment = new NewsFragment();
                        break;

                    case R.id.bottom_nav_profile:
                        fragment = new ProfileFragment();
                        break;
                }
                getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, fragment).commit();
            }
        });

    }
 
    @Override public void onBackPressed(){
            if (drawer.isDrawerOpen(GravityCompat.START)) {
                drawer.closeDrawer(GravityCompat.START);
            } else {
                super.onBackPressed();
            }
        }
    }

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 在onCreate(Bundle savedInstanceState)中创建捆绑对象的位置在哪里 - Where is Bundle object created in onCreate(Bundle savedInstanceState) 在墙纸服务中使用onCreate Bundle savedInstanceState吗? (表面) - Using onCreate Bundle savedInstanceState with wallpaper service? (Watchface) 我如何在onCreate方法中使用Bundle savedInstanceState? - How do I used the Bundle savedInstanceState in the onCreate method? 错误:此活动中已经定义了onCreate(Bundle) - Error : onCreate(Bundle) is already defined in this activity savedInstanceState捆绑包中的NullPointerException - NullPointerException in savedInstanceState Bundle 更改捆绑包saveInstanceState - Altering Bundle savedInstanceState 服务onStartCommand和onCreate与Activity的onCreate从同一线程执行 - Service onStartCommand and onCreate executed from the same Thread as Activity's onCreate 多个onCreate(在一个活动下捆绑的Webview和按钮 - multiple onCreate(Bundle under one activity for webview and button super.onCreate(savedInstanceState)在第一次运行时崩溃 - super.onCreate(savedInstanceState) crashes in first run Android-只能在onRestoreInstanceState()中还原saveInstanceState,而不能在onCreate()中还原 - Android - savedInstanceState can be restored only in onRestoreInstanceState() not in onCreate()
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM