更改布局视图但返回时丢失数据!

时间:2011-07-18 20:59:05

标签: android

所以我正在为高尔夫球手的记分卡写一个应用程序。我为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上输入的数据不再存在?

2 个答案:

答案 0 :(得分:2)

setContentView从指定为参数的布局文件中加载新组件。初始加载的旧视图(TextViews和EditText)不会通过使用setContentView重用,因此数据不再“存在”。您可以保存数据并将其重新应用于视图,而不是使用setContentView。

另一个解决方案是使用ViewFlipperViewSwitcher或类似方法在主视图之间制作一个漂亮的切换动画。

答案 1 :(得分:0)

您应该以某种方式保留数据,这意味着存储它,然后一旦返回到播放器布局,就抓取数据并填充相应的字段。