在Android Java中将一个双精度值传递给不同的类
在Android Java中将一个双精度值传递给不同的类
我只是想知道有什么方法可以将两个或多个双精度值从ClassA传递给ClassB。目前我找到了以下代码:\n
double a, b; double a = 2.456; double b = 764.2353; Intent i = new Intent(); i.setClassName("com.b00348312.application","com.b00348312.application.ClassB"); double number = getIntent().getDoubleExtra("value1", a); double number = getIntent().getDoubleExtra("value2", b); startActivity(i);
\n这段代码不能传递数值,我也找不到检索这些数值的方法。\n这里的另一个问题建议创建类的实例,但尝试后我似乎无法正确传递数值。\n我正在为Android编程,所以不知道方法是否会有所不同。
在Android Java中,将double值传递给不同类的问题可能涉及到Intent和Bundle的使用。问题的原因可能是在发送活动中,没有正确地将double值附加到Intent对象中。解决方法是使用putExtra()方法将double值添加到Intent对象,并使用Activity类的setResult()方法将Intent对象设置为结果。在接收活动中,可以使用getDoubleExtra()方法从Intent中获取double值。
代码示例:
在发送活动中:
double latitude = 37.7749; double longitude = -122.4194; Intent returnIntent = new Intent(); returnIntent.putExtra(KeyConstants.LATITUDE, latitude); returnIntent.putExtra(KeyConstants.LONGITUDE, longitude); setResult(Activity.RESULT_OK, returnIntent);
在接收活动中:
double latitude = getIntent().getDoubleExtra(KeyConstants.LATITUDE, 0.0); double longitude = getIntent().getDoubleExtra(KeyConstants.LONGITUDE, 0.0);
这样,接收活动将能够正确地从发送活动中获取double值。
在Android Java中,将double值传递给不同类的问题可以通过正确地使用Intent和Bundle来解决。发送活动应该使用putExtra()方法将double值添加到Intent对象,并使用setResult()方法将Intent对象设置为结果。接收活动应该使用getDoubleExtra()方法从Intent中获取double值。
问题的出现原因是需要在两个不同的类之间传递一个double值。解决方法是使用Intent和Bundle来传递double值。
在第一个类中,我们首先创建一个Intent对象,指定目标类为classB.class。然后创建一个Bundle对象,将double值放入Bundle中,并将Bundle对象放入Intent中。最后通过startActivity方法启动目标类。
在第二个类中,我们首先获取传递过来的Intent对象。然后通过getExtras方法获取Bundle对象,并通过getDouble方法获取传递过来的double值。
通过这种方式,我们可以在不同的类之间传递double值。
以下是完整的代码示例:
第一个类:
double a, b; Intent i = new Intent(classA.this, classB.class); Bundle params = new Bundle(); params.putDouble("doubleA", a); params.putDouble("doubleB", b); i.putExtras(params); startActivity(i);
第二个类:
double a, b; // 获取传递过来的参数 Intent it = getIntent(); if (it != null) { Bundle params = it.getExtras(); if (params != null) { a = params.getDouble("doubleA"); b = params.getDouble("doubleB"); } }
问题的原因是代码中没有将double值放入Intent中,导致在下一个Activity中无法获取该值。解决方法是使用Bundle将double值放入Intent中,并在下一个Activity中获取该值。
具体的操作步骤如下:
1. 在当前Activity中创建一个Intent对象:
Intent yourIntent = new Intent(thisActivity.this, nextActivity.class);
2. 创建一个Bundle对象,并将double值放入Bundle中:
Bundle b = new Bundle(); b.putDouble("key", doubleVal);
3. 将Bundle对象放入Intent中:
yourIntent.putExtras(b);
4. 启动下一个Activity:
startActivity(yourIntent);
5. 在下一个Activity中获取double值:
Bundle b = getIntent().getExtras(); double result = b.getDouble("key");
如果需要传递int或float类型的值,只需将.putDouble更改为.putInteger或.putFloat,并在下一个Activity中使用相应的方法获取值。
如果在获取值时遇到问题,可以将代码放在onCreate方法中,并重新构建项目。确保代码中没有多余的分号或其他错误。如果有答案帮助到你,请记得给出标记。
注意:在Stack Overflow网站上,标记答案的方式是点击答案下方的复选标记,而不是投票。