我有一个小的随机数微调器,当你点击时给出一个随机数。我有两个问题。第一个是主活动加载时,它会在屏幕上显示一个随机数,而不会点击随机数旋转器。我不确定将什么设置为false以防止它与主要活动一起打开。第二个问题是,当您从微调器中选择一个选项时,它不会清除。这意味着如果单击选项D6或D20,则在首先选择其他选项之前,不能再次单击同一选项。实际上,在选择随机数后,选择不会清除内存不足。这是随机数码
public void onItemSelected(AdapterView<?> parent, View view, int pos,
long id) {
Random rand = new Random();
int roll = 0;
boolean firstRun = false;
// An item was selected.
if (!firstRun)
{
if (spinner1.getSelectedItemPosition()==0)
{
roll = rand.nextInt(6)+1;
}
else
{
roll = rand.nextInt(20)+1;
}
}
else
{ firstRun = false; }
// Put the result into a string.
String text = "You rolled a " + roll;
// Build a dialog box and with the result string and a single button
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(text).setCancelable(false)
.setPositiveButton("OK", new
DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id)
{
// do things when the user clicks ok.
}
});
AlertDialog alert = builder.create();
// Show the dialog box.
alert.show();
}
答案 0 :(得分:1)
...当主要活动加载时,它会在屏幕上显示一个随机数字,而不会点击随机数字微调器。
这是因为首次创建onItemSelected()
时会调用Activity
。为避免运行此代码,只需创建一个成员变量(在方法之外声明,最好在onCreate()
之前以便于阅读),如boolean
。并检查。例如
public void onItemSelected(AdapterView<?> parent, View view, int pos,
long id)
{
if (!firstRun) // where firstRun is the boolean variable you create
// and set to true
{
// run your code
}
else
{ firstRun = false; }
}
第二个问题是,当您从微调器中选择一个选项时,它不会清除。
我不完全确定你的意思,但你可以为每个""
来电{{1}之后的position
设置一个空值(onItemSelected()
) }}