总和所有显示值
问题描述:
我需要执行根据添加的食物来显示总卡路里的总和。 我的设计是这样的:总和所有显示值
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
请多多包涵,代码稍微长一点。
答
使用运行总数。
采用单变量int“卡路里”
每当添加食品 将它们添加到卡路里和显示
当你删除一个食品 从热量和显示
答
删除那么你已经有了一个保存卡路里值的字符串。您可以通过做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));
任何人都可以帮忙吗? – user1584033 2012-08-08 12:53:01