Android 意图传递数据

Android Intents to pass data

我不知道为什么,但这不起作用。谁能看出我的代码有什么问题。

我有两个活动,我正在传递来自两个

的数据
public class InputActivity extends AppCompatActivity {


    EditText  number1EditText;
    EditText number2EditText;
    Button addButton;

InputActivity 代码如下所示

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

    number1EditText = (EditText)findViewById(R.id.editText);
    number2EditText = (EditText)findViewById(R.id.editText2);
    addButton = (Button)findViewById(R.id.button);

    addButton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            Intent mIntent = new Intent(getApplicationContext(), AddActivity.class);
            mIntent.putExtra("number1", number1EditText.getText().toString());
            mIntent.putExtra("number2", number2EditText.getText().toString());
            startActivity(mIntent);

        }
    });
}

AddActivity 代码如下所示

public class AddActivity extends AppCompatActivity {

    TextView answer;
    double y=0;


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

        answer =(TextView)findViewById(R.id.textView);

        String value1 = getIntent().getExtras().getString("number1");
        String value2 = getIntent().getExtras().getString("number2");

        answer.setText((int) (Double.parseDouble(value1)+Double.parseDouble(value2)));
    }

只是快速查看:

answer.setText((int) (Double.parseDouble(value1)+Double.parseDouble(value2)));

您正在将 int 传递给方法 setText(),该方法恰好有一个重载,当您从 String 在一些 xml 中。您可能会收到 ResourceNotFoundException.

如果您想显示包含您的值之间总和的文本:

  answer.setText(String.valueOf((int) (Double.parseDouble(value1)+Double.parseDouble(value2))));

请记住,您必须先做很多检查,在进行这种解析时您可能会遇到另一个异常,例如 NumberFormatException