我在 res/values/array.xml
中有一个数组。
<string-array name="list">
<item>string 1</item>
<item>string 2</item>
<item>string 3</item>
</string-array>
这是我的 Java 代码,没有导入语句。
public class Study extends Activity {
private String[] myString;
public static final Random rgenerator = new Random();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.study);
Resources res = getResources();
myString = res.getStringArray(R.array.list);
String q = myString[rgenerator.nextInt(myString.length)];
TextView tv = (TextView) findViewById(R.id.word);
tv.setText(q);
}
}
它将 array.xml
中的随机项显示到 ID 为 word 的 TextView 中。一切都很顺利。直到我从纵向切换到横向,反之亦然,然后它会显示另一个随机项目。当我来回切换时,我希望它保留最初显示的相同项目。我该怎么做?
最佳答案
改变方向实际上会杀死 Activity 并启动一个新的 Activity。因此,在您的情况下,再次调用 onCreate()
并再次生成随机单词。
在 onCreate()
和 onDestroy()
中添加一些 Log.i("created/destroyed")
即可看到这一点。
关于java - 在纵向和横向之间翻转时随机生成的单词会发生变化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4112342/