2012-08-08 76 views
0

我需要執行根據添加的食物來顯示總卡路里的總和。 我的設計是這樣的:總和所有顯示值

Breakfast 

[EDITTEXT] 

[BUTTON][TEXTVIEW] <--display food name and calories 

[BUTTON2][TEXTVIEW2] 

[BUTTON3][TEXTVIEW3] 

[BUTTON4][TEXTVIEW4] 

[BUTTON5][TEXTVIEW5] 

同樣的事情重複的午餐和晚餐

最後,我想有一個TextView顯示的基礎上增加食物熱量總量。

任何人都知道該怎麼做?

這裏是我的代碼:

public class MyFoodCalIntakeActivity extends Activity { 

private Button breakfastSearchButton; 
private Button breakfastSearchButton2; 
private Button breakfastSearchButton3; 
private Button breakfastSearchButton4; 
private Button breakfastSearchButton5; 

private Button lunchSearchButton; 
private Button lunchSearchButton2; 
private Button lunchSearchButton3; 
private Button lunchSearchButton4; 
private Button lunchSearchButton5; 

private Button dinnerSearchButton; 
private Button dinnerSearchButton2; 
private Button dinnerSearchButton3; 
private Button dinnerSearchButton4; 
private Button dinnerSearchButton5; 

private EditText breakfastEditText; 
private EditText lunchEditText; 
private EditText dinnerEditText; 

private TextView breakfastTextView1; 
private TextView breakfastTextView2; 
private TextView breakfastTextView3; 
private TextView breakfastTextView4; 
private TextView breakfastTextView5; 

private TextView lunchTextView1; 
private TextView lunchTextView2; 
private TextView lunchTextView3; 
private TextView lunchTextView4; 
private TextView lunchTextView5; 

private TextView dinnerTextView1; 
private TextView dinnerTextView2; 
private TextView dinnerTextView3; 
private TextView dinnerTextView4; 
private TextView dinnerTextView5; 

private DatabaseHelper dbHelper = new DatabaseHelper(MyFoodCalIntakeActivity.this,"food",2); 

/** Called when the activity is first created. */ 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.food_calorie_intake); 

    。。。 

class breakfastSearchButtonListener implements OnClickListener, android.view.View.OnClickListener 
{ 
public void onClick(View v) 
{ 
    if (v.getId() == R.id.breakfastSearchButton) { 

    String display = ""; 
    SQLiteDatabase db = dbHelper.getWritableDatabase(); 
    /** the result will be loaded in cursor **/ 
    Cursor cursor = db.query("food_table", new String[]{"ID","name","calorie"}, null, null, null, null, null); 

    while(cursor.moveToNext()) 
    { 

     String name = cursor.getString(cursor.getColumnIndex("name")); 
     String calorie = cursor.getString(cursor.getColumnIndex("calorie")); 


     if (name.compareTo(breakfastEditText.getText().toString())==0){ 
      display = display +"Name: "+name+", Calorie: "+calorie; 
      breakfastTextView1.setText(display); 
     } 
    } 
} 
} 

public void onClick(DialogInterface dialog, int which) 
{ 
    // TODO Auto-generated method stub 
} 

} // end activity 

請多多包涵,代碼稍微長一點。

+0

任何人都可以幫忙嗎? – user1584033 2012-08-08 12:53:01

回答

0

使用運行總數。

採用單變量int「卡路里」

每當添加食品 將它們添加到卡路里和顯示

當你刪除一個食品 從熱量和顯示

0

刪除那麼你已經有了一個保存卡路里值的字符串。您可以通過做Integer.parseInt(calorie)將其轉換爲int。所以只要保持這樣的運行總數:

int calorieTotal = 0; 
while(cursor.moveToNext()) 
{ 

    String name = cursor.getString(cursor.getColumnIndex("name")); 
    String calorie = cursor.getString(cursor.getColumnIndex("calorie")); 
    calorieTotal += Integer.parseInt(calorie); 

    if (name.compareTo(breakfastEditText.getText().toString())==0){ 
     display = display +"Name: "+name+", Calorie: "+calorie; 
     breakfastTextView1.setText(display); 
    } 
} 
<textView>.setText(String.valueOf(calorieTotal));