我想做一个七个幸运抽奖的应用程序。这里是我的代码。但是我不知道为什么当我多次点击两个按钮时应用会停止。当我点击“CLEAR”后,“NEXT NUMBER”按钮将不会响应。 有谁知道为什么?在Android中随机生成
MainActivity.java
public class MainActivity extends AppCompatActivity {
TextView[] arr = new TextView[7];
int[] num = new int[6];
int count = 0;
TextView number_7;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
arr[0] = ((TextView) findViewById(R.id.tv_number_one));
arr[1] = ((TextView) findViewById(R.id.tv_number_two));
arr[2] = (TextView)findViewById(R.id.tv_number_three);
arr[3] = (TextView)findViewById(R.id.tv_number_four);
arr[4] = (TextView)findViewById(R.id.tv_number_five);
arr[5] = (TextView)findViewById(R.id.tv_number_six);
number_7 = (TextView)findViewById(R.id.tv_number_seven);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.menu_main, menu);
return true;
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
// Handle action bar item clicks here. The action bar will
// automatically handle clicks on the Home/Up button, so long
// as you specify a parent activity in AndroidManifest.xml.
int id = item.getItemId();
//noinspection SimplifiableIfStatement
if (id == R.id.action_settings) {
return true;
}
return super.onOptionsItemSelected(item);
}
public void generate(View v)
{
Random myRandom = new Random();
if (count >= 7) {
clear(arr[0]);
clear(arr[1]);
clear(arr[2]);
clear(arr[3]);
clear(arr[4]);
clear(arr[5]);
clear(arr[6]);
for (TextView tv : arr) tv.setText("?");
}
switch (count){
case(0):{
num[0]= myRandom.nextInt(48) + 1;
arr[0].setText(String.valueOf(num[0]));
break;
}
case(1):{
num[1]= myRandom.nextInt(48) + 1;
arr[1].setText(String.valueOf(num[1]));
break;
}
case(2):{
num[2]= myRandom.nextInt(48) + 1;
arr[2].setText(String.valueOf(num[2]));
break;
}
case(3):{
num[3]= myRandom.nextInt(48) + 1;
arr[3].setText(String.valueOf(num[3]));
break;
}
case(4):{
num[4]= myRandom.nextInt(48) + 1;
arr[4].setText(String.valueOf(num[4]));
break;
}
case(5):{
num[5]= myRandom.nextInt(48) + 1;
arr[5].setText(String.valueOf(num[5]));
break;
}
case(6):{
int num_7;
Arrays.sort(num);
num_7= myRandom.nextInt(48) + 1;
arr[0].setText(String.valueOf(num[0]));
arr[1].setText(String.valueOf(num[1]));
arr[2].setText(String.valueOf(num[2]));
arr[3].setText(String.valueOf(num[3]));
arr[4].setText(String.valueOf(num[4]));
arr[5].setText(String.valueOf(num[5]));
number_7.setText(String.valueOf(num_7));
break;
}
}
count++;
}
public void clear(View v){
TextView num_1 = (TextView)findViewById(R.id.tv_number_one);
num_1.setText("?");
TextView num_2 = (TextView)findViewById(R.id.tv_number_two);
num_2.setText("?");
TextView num_3 = (TextView)findViewById(R.id.tv_number_three);
num_3.setText("?");
TextView num_4 = (TextView)findViewById(R.id.tv_number_four);
num_4.setText("?");
TextView num_5 = (TextView)findViewById(R.id.tv_number_five);
num_5.setText("?");
TextView num_6 = (TextView)findViewById(R.id.tv_number_six);
num_6.setText("?");
TextView num_7 = (TextView)findViewById(R.id.tv_number_seven);
num_7.setText("?");
}
}
activity_main
<TextView android:text="\?" android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/tv_number_one"
android:textSize="30sp"
android:textIsSelectable="true"
android:layout_marginLeft="10dp"
android:textColor="#67ceff"
android:layout_marginStart="20dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="\?"
android:id="@+id/tv_number_two"
android:layout_alignBottom="@+id/tv_number_one"
android:layout_toRightOf="@+id/tv_number_one"
android:layout_toEndOf="@+id/tv_number_one"
android:textColor="#67ceff"
android:textSize="30sp"
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="\?"
android:id="@+id/tv_number_three"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/tv_number_two"
android:layout_toEndOf="@+id/tv_number_two"
android:layout_marginLeft="20dp"
android:textColor="#67ceff"
android:textSize="30sp"
android:layout_marginStart="20dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="\?"
android:id="@+id/tv_number_four"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/tv_number_three"
android:layout_toEndOf="@+id/tv_number_three"
android:textColor="#67ceff"
android:textSize="30sp"
android:textIsSelectable="true"
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="\?"
android:id="@+id/tv_number_five"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/tv_number_four"
android:layout_toEndOf="@+id/tv_number_four"
android:layout_marginLeft="20dp"
android:textColor="#67ceff"
android:textSize="30sp"
android:layout_marginStart="20dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="\?"
android:id="@+id/tv_number_six"
android:layout_alignBottom="@+id/tv_number_five"
android:layout_toRightOf="@+id/tv_number_five"
android:layout_toEndOf="@+id/tv_number_five"
android:textColor="#67ceff"
android:textSize="30sp"
android:layout_marginLeft="20dp"
android:layout_marginStart="20dp"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="\?"
android:id="@+id/tv_number_seven"
android:layout_alignParentTop="true"
android:layout_toRightOf="@+id/tv_number_six"
android:layout_toEndOf="@+id/tv_number_six"
android:layout_marginLeft="20dp"
android:textColor="#6198ff"
android:textSize="30sp"
android:layout_marginStart="20dp"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="NEXT NUMBER"
android:id="@+id/button_next_num"
android:layout_below="@+id/tv_number_one"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true"
android:layout_marginTop="41dp"
android:onClick="generate"/>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="CLEAR"
android:id="@+id/button_clear"
android:onClick="clear"
android:layout_alignTop="@+id/button_next_num"
android:layout_toRightOf="@+id/tv_number_six"
android:layout_toEndOf="@+id/tv_number_six"
android:layout_marginLeft="30dp" />
你需要做一个for循环 – Breavyn
@ColinGillespie但是,如果使用for循环,应用程序将同时生成7个相同的数字。 –