java - 在第一个和第三个活动之间传递数字
问题描述
嗨,我正在研究计算器,我有问题。也就是说,当我想从第三个活动中的第一个活动的编辑文本中传递数字时,我无法用它做任何事情。例如对于第一个数字,我想添加 3 并在添加后设置显示新值我不能。我知道我有点困惑,但我希望你知道发生了什么
这是第一个活动:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btn1=(Button) findViewById(R.id.button);
et1=(EditText) findViewById(R.id.editText);
et2=(EditText) findViewById(R.id.editText2);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(MainActivity.this., Main2Activity.class);
String age= et1.getText().toString();
intent.putExtra("AGE", age);
String weight= et2.getText().toString();
intent.putExtra("WEIGHT", weight);
startActivity(intent);
}
}
};
}
}
第二:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main2);
btn1=(Button) findViewById(R.id.button2);
btn1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent intent=new Intent(Main2Activity.this, Main3Activity.class);
String age= getIntent().getStringExtra("AGE");
intent.putExtra("AGE", age);
String weight= getIntent().getStringExtra("WEIGHT");
intent.putExtra("WEIGHT", weight);
startActivity(intent);
}
});
}
}
第三:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main3);
tv1=(TextView) findViewById(R.id.textView);
String weight= getIntent().getStringExtra("WEIGHT");
String age= getIntent().getStringExtra("AGE");
double x= age*21;
tv1.setText(x);
}
}
解决方案
代码中几乎没有问题,首先,确保你真的在第三个活动中。因为我在代码中只能看到两个活动:MainActivity,Main2Activity。
另一件事是在第三个活动的 onCreate 中,您正在double
为该setText
方法赋值,它会抛出 ResourceNotFound 异常,因为没有方法,名称setText
和接受double
参数类型。要完成这项工作,您需要将double
value 转换为String
,如下所示:
tv1.setText(String.valueOf(x));
更新
此外,您的年龄变量是字符串类型,因此要构建正确的数学表达式,您需要将年龄变量的类型转换为整数:所以:
double x= Integer.parseInt(age)*21;
推荐阅读
- c - 如何将字符“G”转换为字符串“47”(十六进制)
- python-3.x - 实例化类的 Python3 问题
- javascript - 如何将参数传递给 usePromise React 钩子中的 Promise
- python - Python - 将两个 for 循环连接到数组中
- java - 两个长值之和返回负值
- ruby-on-rails - 使用活动记录在 where 查询中忽略字符串的前 2 个字符
- excel - 如何根据VBA中的另一个单元格为其他单元格着色
- python - Python pymsgbox 不会在取消按钮上关闭
- mysql - 无法使用 peewee 连接到 MySQL 数据库
- ios - UITableViewCell 中的 iOS UITextView “阅读更多”,就像在现代 App Store 中一样