小编Moy*_*nul的帖子

我怎样才能阻止我的片段被销毁?

我有一个导航视图,其中包含一些项目,当按下一个项目时,它将转到该片段。例如,如果您按下抽屉上的“主页”项,它会调出主页片段。

        navigationView = (NavigationView)findViewById(R.id.navigation_view);
        navigationView.setNavigationItemSelectedListener(new NavigationView.OnNavigationItemSelectedListener() {
        @Override
        public boolean onNavigationItemSelected(MenuItem item) {
            switch (item.getItemId()) {
                case R.id.home_id:
                    HomeFragment homeFragment = (HomeFragment) fragmentManager.findFragmentByTag("Home");
                    if (homeFragment == null)
                        homeFragment = new HomeFragment();
                    fragmentTransaction = fragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.Main, homeFragment, "Home");
                    fragmentTransaction.commit();
                    getSupportActionBar().setTitle("Home");
                    item.setChecked(true);
                    drawerLayout.closeDrawers();
                    break;

                case R.id.chat_id:
                    ChatFragment chatFragment = (ChatFragment) fragmentManager.findFragmentByTag("Chat");
                    if (chatFragment == null)
                        chatFragment = new ChatFragment();
                    fragmentTransaction = fragmentManager.beginTransaction();
                    fragmentTransaction.replace(R.id.Main, chatFragment, "Chat");
                    fragmentTransaction.commit();
                    getSupportActionBar().setTitle("Chat");
                    item.setChecked(true);
                    drawerLayout.closeDrawers();
                    break;
            }

        }
    }
Run Code Online (Sandbox Code Playgroud)

所以我认为正在发生的是,当我使用该replace()方法时,它正在破坏聊天片段。如果我有关于聊天片段的数据,并且我想确保更改片段时数据不会消失怎么办。

ChatFragment类中,我放置了这个覆盖方法:

@Override
public void …
Run Code Online (Sandbox Code Playgroud)

android android-fragments

3
推荐指数
1
解决办法
9889
查看次数

尽管跟踪命令为真,但if语句仍无效

这真的很烦人,我已经尝试了一切,但无法解决这个问题.

    private function gameLoop(e:Event):void 
    {

        movement();
        trace(randomItem);
        if (randomItem == "pomme")
        {
            updateScore();
        }



        if (timerText.text == "0") 
        {
            stage.removeChild(player);
            stage.removeEventListener(Event.ENTER_FRAME, gameLoop);
            stage.removeEventListener(KeyboardEvent.KEY_DOWN, keyDown);
            stage.removeEventListener(KeyboardEvent.KEY_UP, keyUp);
            this.gotoAndStop(3)
            endFrame();

        }
    }
Run Code Online (Sandbox Code Playgroud)

此代码跟踪randomItem.我测试了它,跟踪输出表示randomItem是"pomme".

这意味着分数应该有更新(跟踪命令:"分数已更新");

但它没有,这种方法适用于我正在进行的其他游戏,但这里有什么重要的想法?

    private var colourArray:Array = new Array("pomme ","banane ","laitue ","concombre ","miel");
Run Code Online (Sandbox Code Playgroud)

顶部代码是一个数组,randomItem将它与数组进行比较.

    private var colourArray:Array = new Array("pomme ","banane ","laitue ","concombre ","miel");
    private var len:int = colourArray.length - 1;
    private var rand:int;
    private var randomItem:String;  

        rand = Math.floor(Math.random() * len);
        randomItem = colourArray[rand];
        trace(randomItem);
        baloonText.text = "Teddy wants …
Run Code Online (Sandbox Code Playgroud)

flash actionscript-3

0
推荐指数
1
解决办法
86
查看次数