簡體   English   中英

如何在另一個活動中顯示從一個活動傳遞的值?

[英]How to display values passing from one activity in another activity?

我在這里將 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 的兩個值,並且計算也不起作用。 我該如何糾正呢?

您已將變量設置為按鈕單擊。
你的變量將沒有價值。
您應該將以下代碼復制到您的按鈕單擊偵聽器代碼。

    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);
    }
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM