简化Java和Android Studio中的一些代码

简化Java和Android Studio中的一些代码,java,android,Java,Android,我试图创建这样的东西:点击一个按钮后,程序应该显示四个随机数(1到9之间),但有一些特殊性。经过一组条件(操作),最终结果为22。我已经编写了代码,但我认为它太大了,无法使用,并且有一些小事情我想更改。例如,我希望它在第一次单击时自动显示这四个“神奇”数字,而不是多次单击按钮直到出现正确的数字集。我不知道怎么做: public class MainActivity extends AppCompatActivity { @Override protected void on

我试图创建这样的东西:点击一个按钮后,程序应该显示四个随机数(1到9之间),但有一些特殊性。经过一组条件(操作),最终结果为22。我已经编写了代码,但我认为它太大了,无法使用,并且有一些小事情我想更改。例如,我希望它在第一次单击时自动显示这四个“神奇”数字,而不是多次单击按钮直到出现正确的数字集。我不知道怎么做:

public class MainActivity extends AppCompatActivity {  

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);


    }    public void button_action (View v){ int TF = 22;

    Random a = new Random();
    int i1 = a.nextInt(10 - 1) + 1;
    TextView tv = (TextView) findViewById(R.id.textView1);

    Random b = new Random();
    int i2 = b.nextInt(10-1)+1;
    TextView tv2 = (TextView) findViewById(R.id.textView2);

    Random c = new Random();
    int i3 = c.nextInt(10-1)+1;
    TextView tv3 = (TextView) findViewById(R.id.textView3);

    Random d = new Random();
    int i4 = d.nextInt(10-1)+1;
    TextView tv4 = (TextView) findViewById(R.id.textView4);

    int soma = i1 + i2 + i3 + i4;
    int mult0 = i1 * i2 * i3 * i4;
    int mult1 = (i1*i2*i3)+i4;
    int mult2 = (i1*i2)+i3+i4;
    int mult3 = i1 * (i2 + i3 + i4);
    int mult4 = i2 * (i1+i3+i4);
    int mult5 = i3 * (i1+i2+i4);
    int mult6 = i4 * (i1+i2+i3);
    int mult7 = (i1*i3)+i2+i4;
    int mult8 = (i1*i4)+i2+i3;
    int mult9 = (i2*i3)+i1+i4;
    int mult10 = (i2*i4)+i1+i3;
    int mult11 = (i4*i3)+i1+i2;
    int mult12 = (i1*i3*i4)+i2;
    int mult13 = (i1*i2*i4)+i3;
    int mult14 = (i4*i2*i3)+i1;

    if (soma == TF){
        tv.setText(String.valueOf(i1));
        tv2.setText(String.valueOf(i2));
        tv3.setText(String.valueOf(i3));
        tv4.setText(String.valueOf(i4));}

    if (mult0 == TF){
        tv.setText(String.valueOf(i1));
        tv2.setText(String.valueOf(i2));
        tv3.setText(String.valueOf(i3));
        tv4.setText(String.valueOf(i4));}

    if (mult1 == TF){
        tv.setText(String.valueOf(i1));
        tv2.setText(String.valueOf(i2));
        tv3.setText(String.valueOf(i3));
        tv4.setText(String.valueOf(i4));}

    if (mult2 == TF){
        tv.setText(String.valueOf(i1));
        tv2.setText(String.valueOf(i2));
        tv3.setText(String.valueOf(i3));
        tv4.setText(String.valueOf(i4));}

    if (mult3 == TF){
        tv.setText(String.valueOf(i1));
        tv2.setText(String.valueOf(i2));
        tv3.setText(String.valueOf(i3));
        tv4.setText(String.valueOf(i4));}

    if (mult4 == TF){
        tv.setText(String.valueOf(i1));
        tv2.setText(String.valueOf(i2));
        tv3.setText(String.valueOf(i3));
        tv4.setText(String.valueOf(i4));}   ... } 
 }

有什么建议吗?

不管TF等于什么,看起来你在做同样的事情。如果(soma==TF | | | mult0==TF | | mult1==TF | mult2==TF | | mult3==TF | | | mult4==TF}尝试将操作数和运算符存储在数组中并遍历它。另外,这看起来像一个问题,因为不管TF等于什么,你都在做同样的事情。如果(soma==TF | | | mult0==TF | | mult1==TF | | mult2==TF | | mult3==TF | | | mult4==TF{}尝试将操作数和运算符存储在数组中并遍历它。而且,这看起来像是一个问题