2012-03-06 10 views
8

Jestem tylko ciekaw jaki sposób jest przejść dwie lub więcej wartości podwójnych z ClassA do ClassBPrzechodząc podwójną wartość aż do innej klasy w Android Java

na minutę znalazłem kod, który dał mi tę metodę :

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

To nie przejdzie wartości przez nie mogę znaleźć sposobu pobierania tych wartości

Inną kwestią tutaj sugerowane metody tworzenia instancji klasy, lecz stara, że ​​nie mogę wydają się poprawnie przekazać wartości.

jestem programowania dla Androida, więc nie wiem, czy metoda będzie inna

Odpowiedz

19

nie jesteś faktycznie umieszczenie swoich sobowtórów w Twój Intent

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

Następnie dostać go w następnym Aktywny:

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

Dziękuję . To naprawdę pomaga. Myślałem, że był problem z rzeczywistymi wartościami, ale nie wiedziałem, jaki kod muszę umieścić, aby go wstawić. Czy jest jakiś inny kod, jeśli chcę przekazać int lub float, czy też jest to prosty jak chaning .putDouble to .putInteger –

+0

Dziękuję. To naprawdę pomaga. Myślałem, że był problem z rzeczywistymi wartościami, ale nie wiedziałem, jaki kod powinienem wstawić. Czy jest dużo różnych, jeśli chcę przekazać float lub int? –

+0

Np. Mógłbyś przekazać float lub int w ten sam sposób. Dev Docs dla [Bundles] (http://developer.android.com/reference/android/os/Bundle.html) Powinien ci pomóc. – bschultz

0

To prawie prawidłowa technika przesyłania informacji między działaniami. Trzeba użyć metody putDouble() tak:

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

W celu uzyskania dostępu do tych wartości trzeba wyciągnąć je z mapą Dodatki na koniec odbiorczy Aktywny tak:

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

trzeba użyć:

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

można spróbować w ten sposób

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

Na drugiej stronie trzeba coś takiego

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");    
    } 
} 
Powiązane problemy