我有一个导航视图,其中包含一些项目,当按下一个项目时,它将转到该片段。例如,如果您按下抽屉上的“主页”项,它会调出主页片段。
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) 这真的很烦人,我已经尝试了一切,但无法解决这个问题.
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)