将double值传递给Android Java中的其他类

时间:2012-03-06 16:42:20

标签: android android-intent double

我只是想知道从classA到ClassB

传递两个或更多个double值的方法

在我找到代码给我这个方法的那一刻:

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

这不会传递值,也无法找到检索这些值的方法

这里的另一个问题提出了创建类实例的方法,但尝试了我似乎无法正确传递值。

我正在为Android编程,所以我不知道该方法是否会有所不同

5 个答案:

答案 0 :(得分:21)

您实际上并未将双打放入Intent

Intent yourInent = new Intent(thisActivity.this, nextActivity.class);
Bundle b = new Bundle();
b.putDouble("key", doubleVal);
yourIntent.putExtras(b);
startActivity(yourIntent);

然后,在下一个活动中获取它:

Bundle b = getIntent().getExtras();
double result = b.getDouble("key");

答案 1 :(得分:2)

你可以这样试试

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;
// Get Params from intent
Intent it = getIntent();        
if (it != null)
{
    Bundle params = it.getExtras();
    if  (params != null)
    {
         a = params.getDouble("doubleA");
         b = params.getDouble("doubleB");               
     }
}

答案 2 :(得分:0)

这几乎是在Activities之间发送信息的正确技术。你需要像这样使用putDouble()方法:

i.putDouble("value1", a);
i.putDouble("value2", b);

要访问这些值,您需要将它们从接收活动结束的Extras地图中拉出来,如下所示:

public void onCreate(Bundle savedInstanceState) {
     super.onCreate(savedInstanceState);
     setContentView(R.layout.main2);
     Intent intent=getIntent();
     double a=intent.getExtras().getDouble("value1");
     double b=intent.getExtras().getDouble("value2");

答案 3 :(得分:0)

您需要使用:

i.putExtra("number1", number1);
i.putExtra("number2", number1);

答案 4 :(得分:0)

科特林

发送活动

        val returnIntent = Intent()
        returnIntent.putExtra(KeyConstants.LATITUDE, latitude);
        returnIntent.putExtra(KeyConstants.LONGITUDE, longitude)
        setResult(Activity.RESULT_OK, returnIntent);

接收活动,

 val latitude = intent?.getDoubleExtra(KeyConstants.LATITUDE, 0.0)
 val longitude = intent?.getDoubleExtra(KeyConstants.LONGITUDE, 0.0)