首页 > 解决方案 > 如何在另一个活动中显示从一个活动传递的值?

问题描述

我在这里将 Number1 和 Number2 的 2 个值从 FirstActivity 传递到 SecondActivity。在 SecondActivity 中,我显示这两个数字,然后在单击“加号”按钮后计算它的总和并在文本视图中显示总和。

public class FirstActivity extends AppCompatActivity {

    Button OkButton;
    EditText et_number1;
    EditText et_number2;
    String number1;
    String number2;


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

        OkButton = (Button) findViewById(R.id.ok_btn);
        et_number1 = (EditText) findViewById(R.id.ac1pt1);
        et_number2 = (EditText) findViewById(R.id.ac1pt2);
        number1 = et_number1.getText().toString();
        number2 = et_number2.getText().toString();

        OkButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(FirstActivity.this,"Ok button clicked",Toast.LENGTH_SHORT).show();
                Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
                intent.putExtra("EXTRAN1",number1);
                intent.putExtra("EXTRAN2",number2);
                startActivity(intent);
            }
        });
    }
}

public class SecondActivity extends AppCompatActivity {

    String no1;
    String no2;

    Button plus;
    Button minus;
    Button multiply;
    Button divide;
    TextView answer;
    TextView tv_number1;
    TextView tv_number2;

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

        plus = (Button) findViewById(R.id.plus);
        minus = (Button) findViewById(R.id.minus);
        multiply = (Button) findViewById(R.id.multiply);
        divide = (Button) findViewById(R.id.division);
        answer = (TextView) findViewById(R.id.actv3);

        Intent i = getIntent();
        no1= i.getStringExtra("EXTRAN1");
        no2= i.getStringExtra("EXTRAN2");

        tv_number1 = (TextView ) findViewById(R.id.ac2tv1);
        tv_number2 = (TextView ) findViewById(R.id.ac2tv2);

        tv_number1.setText(no1);
        tv_number2.setText(no2);

        plus.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                addition();
            }
        });
    }

    public void addition(){
        double n1 = Double.parseDouble(tv_number1.getText().toString());
        double n2 = Double.parseDouble(tv_number2.getText().toString());
        double result = n1 +n2;
        String r = Double.toString(result);
        answer.setText(r);
    }
}

尽管代码中没有显示错误,但当我运行应用程序时,没有显示数字 1 和数字 2 的两个值,并且计算也不起作用。我该如何纠正呢?

标签: javaandroidandroid-studio

解决方案


您已将变量设置为按钮单击。
你的变量将没有价值。
您应该将以下代码复制到您的按钮单击侦听器代码。

    OkButton.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        Toast.makeText(FirstActivity.this,"Ok button clicked",Toast.LENGTH_SHORT).show();
    number1 = et_number1.getText().toString();
    number2 = et_number2.getText().toString();
        Intent intent = new Intent(FirstActivity.this, SecondActivity.class);
        intent.putExtra("EXTRAN1",number1);
        intent.putExtra("EXTRAN2",number2);
        startActivity(intent);
    }
});

推荐阅读