几个月前,我开始编写代码,并开始在自己的应用程序上进行练习。
可以输入六个名称,然后将随机名称与随机任务匹配,如果您输入所有六个名称,则可以正常工作。
现在,我希望随机绑定由实际包含输入名称的textViews限制...
Random r = new Random();
int Case = r.nextInt(6);
switch(Case){
case 0: tv = findViewById(R.id.textView2);
st = getIntent().getExtras().getString("Player");
tv.setText(st);
break;
case 1: tv = findViewById(R.id.textView2);
st = getIntent().getExtras().getString("Player2");
tv.setText(st);
break;
case 2: tv = findViewById(R.id.textView2);
st = getIntent().getExtras().getString("Player3");
tv.setText(st);
break;
case 3: tv = findViewById(R.id.textView2);
st = getIntent().getExtras().getString("Player4");
tv.setText(st);
break;
case 4: tv = findViewById(R.id.textView2);
st = getIntent().getExtras().getString("Player5");
tv.setText(st);
break;
case 5: tv = findViewById(R.id.textView2);
st = getIntent().getExtras().getString("Player6");
tv.setText(st);
break;
case 6: tv = findViewById(R.id.textView2);
st = getIntent().getExtras().getString("Player7");
tv.setText(st);
break;
我考虑使用
int x;
if (textView1 filled && TextView2 empty){x=0}
if else (textview1 filled && TextView2 filled && TextView3 empty) {x=1} etc.
Random r = new Random();
int Case = r.nextInt(x);
答案 0 :(得分:0)
您可以先检查视图是否为空,然后再使用计数器进行跟踪。然后以该计数器为界。
您可以像这样检查Textview是否为空:
TextView text= findById(R.id.textview);
Boolean isEmpty =text.getText().toString().isEmpty();
答案 1 :(得分:0)
但是,如果if else (textview1 filled && TextView2 filled && TextView3 empty) {x=1} etc.
第三字段为空而Fourt不会为空,会发生什么?更好的是收集数组中的所有字段并进行迭代。如果字段已填写,则将1加到计数器。像这样:
int filledCount = 0;
TextView[] views = {TextView1, TextView2, ...};
for (TextView view : views)
{if (view.filled) filledCount++;}
如果您使用Java 8,请使用流。 Stream.of(TextView1,TextView2,...).filter(TextView::isFilled).count();