1

我遇到了一些问题,我确实知道如何传递值数据。例如在 Activity1 中:我正在使用方法 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);

问题是,我想如何在一项新活动下计算 all = 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);

    }

}

这是一项活动,另外两项活动相同,只是变量不同,现在我不知道如何计算一项新活动下的所有结果?感谢:D

4

2 回答 2

0

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

于 2012-05-12T15:02:11.210 回答
0

您还可以创建一个名为的变量totalKalori,并且在每个活动中,您可以发送totalKalori到另一个活动。totalKalori从上一个 Intent获取后,您可以totalKalori=+calculateLunch(food,drink)在将其发送到下一个 Activity 之前调用

于 2012-05-12T15:07:38.590 回答