所以我正在为高尔夫球手的记分卡写一个应用程序。我为player1设置了一个视图,初始化按钮并编辑了文本和文本视图等。然后我可以点击查看下一个玩家,它为玩家2做了类似的事情。这一切都很好 - 输入分数等,并在屏幕上看到它们。但是,如果我尝试返回到player1的视图,那么屏幕上的数据就不再存在了。如果您愿意,textview,编辑文本框还没有“保存”....为什么这样,我该如何纠正?
下面的伪代码:
//Set up player 1 view
SetContentView(R.layout.player1);
//Initialise click listeners and buttons etc
initialiseClickListeners();
//setup EditText and Textviews
enterScore();
//if click on next player button then initialise buttons and boxes for player 2
SetContentView(R.layout.player2);
//Initialise click listeners and buttons etc
initialiseClickListeners();
//setup EditText and Textviews
enterScore();
//if click on next player button and there are no more players go back to player1
SetContentView(R.layout.player1);
//dont initialise buttons etc
为什么我在观看播放器1上输入的数据不再存在?
答案 0 :(得分:2)
setContentView从指定为参数的布局文件中加载新组件。初始加载的旧视图(TextViews和EditText)不会通过使用setContentView重用,因此数据不再“存在”。您可以保存数据并将其重新应用于视图,而不是使用setContentView。
另一个解决方案是使用ViewFlipper,ViewSwitcher或类似方法在主视图之间制作一个漂亮的切换动画。
答案 1 :(得分:0)
您应该以某种方式保留数据,这意味着存储它,然后一旦返回到播放器布局,就抓取数据并填充相应的字段。