【发布时间】:2013-03-24 08:36:19
【问题描述】:
问题就这么简单。我有一个带有随机更改文本视图框文本的按钮的活动。如何添加另一个按钮来收集生成的前一个数字,以便返回前一个 textview 文本 - 对于报价应用程序。我需要一个功能吗?我已经搜索过,但我找不到会在随机数生成器上“返回”的功能。 提前谢谢你。
【问题讨论】:
标签: android eclipse button random
问题就这么简单。我有一个带有随机更改文本视图框文本的按钮的活动。如何添加另一个按钮来收集生成的前一个数字,以便返回前一个 textview 文本 - 对于报价应用程序。我需要一个功能吗?我已经搜索过,但我找不到会在随机数生成器上“返回”的功能。 提前谢谢你。
【问题讨论】:
标签: android eclipse button random
您不需要返回生成器本身,只需记住以前的值即可。将其存储在变量中。这里我们使用 prev 作为数组,因为我们需要它是 final 的,所以我们可以在匿名内部类(点击处理程序)中访问它。但我们也需要改变它。所以我们使用prev[0] 值。
在这里,我假设您有一个名为 nextNum 的按钮,它会生成下一个随机数。但这可能是任何事情,没关系。当你生成一个新的随机数时,只需更新 prev 数组的第 0 个元素就可以了。
final String[] prev = new String[] { "" }
@Override
public void onCreate(Bundle bundle) {
// ....
Button BackQuote = (Button)findViewById(R.id.back);
final TextView display = (TextView) findViewById(R.id.textView1);
// number generator button
Button nextNum = (Button) findViewById(R.id.random);
nextNum.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
// generate a random number
// store it in prev
prev[0] = rndNum.toString();
}
});
BackQuote.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
display.setText(prev[0]);
}
});
}
除非有特定原因您想避免这种情况,否则这将非常有效。并且没有办法在随机生成器上返回。根据定义,它是随机的! (是的,伪随机。尽管如此)
因此,如果您想保留历史记录,则必须自己实现这些记录。我还没有看到具有 history 功能的随机生成器。如果我也这样做,我会感到惊讶。
【讨论】:
R.string.prev) 的值,它们是编译时常量。而是使用局部变量字符串 (display.setText(prev))。如果你需要它持久化,那么你可以将它存储在 SharedPreferences 中。