java - 如何在另一个活动中显示从一个活动传递的值?
问题描述
我在这里将 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);
}
});
推荐阅读
- elasticsearch - 使用 Elasticsearch 从日期直方图中过滤周末
- python - boto2 get_key() 在已知键上返回 None
- typescript - 带有 SonarJS 的声纳扫描仪无法解析打字稿
- yocto - BitBake 将 tmux 包添加到图像
- vuetify.js - vuetify 中的 xs 断点无法正常工作
- python - 从带有条件的 for 循环中动态创建大量列表
- c# - 有什么方法可以确定实体框架 6.3 中正在编辑哪些实体
- python - 用二维坐标之间的距离填充一个 numpy 零数组
- keras - tf.keras 如何保存 ModelCheckPoint 对象
- http - http2:收到 GOAWAY [FrameHeader GOAWAY len=8],开始正常关机