Передача двойного значения другому классу в Android Java - PullRequest
9 голосов
/ 06 марта 2012

Мне просто интересно, как можно передать два или более двойных значения из класса A в ClassB

в минуту, когда я нашел код, который дает мне этот метод:

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, поэтому я не знаю, будет ли метод отличаться

Ответы [ 4 ]

21 голосов
/ 06 марта 2012

Вы на самом деле не ставите свои двойники в 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");
2 голосов
/ 06 марта 2012

Вы можете попробовать таким способом

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");               
     }
}
0 голосов
/ 06 марта 2012

Вам необходимо использовать:

i.putExtra("number1", number1);
i.putExtra("number2", number1);
0 голосов
/ 06 марта 2012

Это почти правильный метод для отправки информации между действиями. Вам нужно использовать метод putDouble () примерно так:

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

Чтобы получить доступ к этим значениям, вам нужно вытащить их из карты «Дополнительно» на принимающем конце «Действия» следующим образом:

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