2012-05-12 39 views
1

我有一些问题,我知道如何传递数值数据。 例如在活性1: 我使用方法 int kalorivalue1 = calculateBreakfast(food1, drink1); public int calculateBreakfast(int food1, int drink1) { return (int) (food1 + drink1);意图传递数据计算

在活动2

int kalorivalue2 = calculateLunch(food2 , drink2); 
public int calculateLunch(int food2, int drink2) { 
     return (int) (food2 + drink2); 

在活动3 >

int kaloriValue3 = calculateDinner(food3, drink3); 
public int calculateDinner(int food3, int drink3) { 
     return (int) (food3 + drink3); 

的问题是,如何想要计算所有= kaloriValue1 + kaloriValue2 + kaloriValue3 下一个新的活动?我必须使用意图还是以其他方式? 预先感谢您。你的帮助非常感谢。 :)

package lynn.calculate.KaunterKalori; 

import lynn.calculate.KaunterKalori.R; 

import android.app.Activity; 
import android.os.Bundle; 
import android.view.View; 
import android.widget.ArrayAdapter; 
import android.widget.Spinner; 
import android.widget.TextView; 
//import android.content.Intent; 

public class Breakfast extends Activity { 

    public int totalKalori; 


    ArrayAdapter<String> FoodType1Adapter; 
    ArrayAdapter<String> DrinkType1Adapter; 
    String FoodTypeArray[] = { "nasi lemak", "roti canai", 
      "Roti(2kpg-White Bread)", "nasi kerabu", "tosei", "nasi goreng" }; 
    int[] valueFoodTypeArray = { 389, 301, 140, 20, 1, 637 }; 
    String[] DrinkTypeArray = { "teh panas", "teh 0 panas", "teh tarik" }; 
    int[] valueDrinkTypeArray = { 201, 101, 51 }; 

    Spinner FoodTypeSpinner; 
    Spinner DrinkTypeSpinner; 
    TextView SarapanTotalKalori; 

    public void onCreate(Bundle savedInstancesState) { 
     super.onCreate(savedInstancesState); 
     setContentView(R.layout.breakfast); 

     FoodTypeSpinner = (Spinner) findViewById(R.id.spinner1); 
     DrinkTypeSpinner = (Spinner) findViewById(R.id.spinner2); 
     SarapanTotalKalori = (TextView) findViewById(R.id.JumlahKalori); 

     initializeSpinnerAdapters(); 
     // load the default values for the spinners 
     loadFoodValue1Range(); 
     loadDrinkValue1Range(); 

    } 

    // nk handle button --> refer calculate button 
    public void calculateClickHandler(View view) { 
     if (view.getId() == R.id.button1) { 

      // nk bace dkat spinner 
      int food1 = getSelectedFood(); 
      int drink1 = getSelectedDrink(); 

      // kira kalori sarapan 
      // view kalori sarapan 

      int kaloriValue1 = calculateSarapan(food1, drink1); 
      SarapanTotalKalori.setText(kaloriValue1 + ""); 
      totalKalori = kaloriValue1; 
     // Bundle extras = getIntent().getExtras(); 
      //if (extras != null) { 
      // int sarapanKalori = extras.getInt("kaloriValue1"); 
       //setCurrentSarapanKalori(kaloriValue1); 
       //CurrentSarapanKalori(); 
      } 
     } 

     //Intent i= new Intent(this, CalculateAll.class); 
     //i.putExtra("sarapanKalori", kaloriValue1); 
    //} 

    public int getSelectedFood() { 
     String selectedFoodValue = (String) FoodTypeSpinner.getSelectedItem(); 
     int index = 0; 

     for (int i = 0; i < FoodTypeArray.length; i++) { 
      if (selectedFoodValue.equals(FoodTypeArray[i])) { 
       index = i; 
       break; 
      } 
     } 
     return valueFoodTypeArray[index]; 
    } 

    public int getSelectedDrink() { 
     String selectedDrinkValue = (String) DrinkTypeSpinner.getSelectedItem(); 
     int index = 0; 
     for (int i = 0; i < DrinkTypeArray.length; i++) { 
      if (selectedDrinkValue.equals(DrinkTypeArray[i])) { 
       index = i; 
       break; 
      } 
     } 
     return valueDrinkTypeArray[index]; 

    } 

    public int calculateSarapan(int food1, int drink1) { 
     return (int) (food1 + drink1); 
    } 

    public void loadFoodValue1Range() { 
     FoodTypeSpinner.setAdapter(FoodType1Adapter); 
     // set makanan b4 pilih 
     FoodTypeSpinner.setSelection(FoodType1Adapter.getPosition("400")); 

    } 

    public void loadDrinkValue1Range() { 
     DrinkTypeSpinner.setAdapter(DrinkType1Adapter); 
     DrinkTypeSpinner.setSelection(DrinkType1Adapter.getPosition("77")); 
    } 

    public void initializeSpinnerAdapters() { 

     FoodType1Adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_spinner_item, FoodTypeArray); 

     DrinkType1Adapter = new ArrayAdapter<String>(this, 
       android.R.layout.simple_spinner_item, DrinkTypeArray); 

    } 

} 

这是一个活动,其他2活动是相同的只是不同的变量,现在我不知道如何计算都在一个新的活动的结果呢?谢谢:D

回答

0

我会在您的最终活动中创建一个public static long kaloriResult来保存结果,并添加到每个活动的结果中。

+0

谢谢,我会试试 – chilora7

+0

让我知道它是否可行。 – Barak

+0

对不起,我试过这个方法,但它没有工作。 – chilora7

0

您也可以创建一个名为totalKalori的变量,并且在每个活动中,您可以将totalKalori发送到其他活动。在从之前的Intent得到totalKalori之后,您可以在发送给下一个活动之前致电totalKalori=+calculateLunch(food,drink)活动