根据填充的TextViews随机切换绑定



我几个月前开始编码,并开始在自己的应用程序上练习
可以输入六个名称,然后随机名称与随机任务相匹配,如果您输入所有六个名称则可以正常工作。

现在,我希望随机绑定由实际包含输入名称的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);

您可以先检查视图是否为空,然后使用计数器进行跟踪。然后使用该计数器作为绑定。

您可以检查文本视图是否为空,如下所示:

TextView text= findById(R.id.textview);
Boolean isEmpty =text.getText().toString().isEmpty();

但是如果if else (textview1 filled && TextView2 filled && TextView3 empty) {x=1} etc.第三个字段为空,而第四个字段不为空,会发生什么?更好的方法是收集数组中的所有字段并进行迭代。若字段已填充,则在计数器上加1。类似这样的东西:

int filledCount = 0;
TextView[] views = {TextView1, TextView2, ...};
for (TextView view : views)
{if (view.filled) filledCount++;}

如果您使用java8,请使用流。Stream.of(TextView1,TextView2,...).filter(TextView::isFilled).count();

最新更新