2017-03-05 1 views
1

Kann mir jemand bei meinem Projekt für die Hochschule helfen?
Ich versuche, den Wert von BMI in SQLite zu speichern.Speichern des BMI in SQLite

Ich habe die DatabaseHelper-Setup und all das, nur nicht sicher, wie Sie es speichern, während Sie es auf eine TextView auch einstellen.
Ich möchte das Ergebnis speichern und anzeigen.

Der Code unten funktioniert und zeigt es an, ich weiß nur nicht, wie man es auch speichert.

package ie.wit.fitnessmadeeasy; 

import android.support.v7.app.AppCompatActivity; 
import android.os.Bundle; 
import android.util.Log; 
import android.view.View; 
import android.widget.Button; 

import android.widget.EditText; 
import android.widget.ImageView; 

import android.widget.NumberPicker; 
import android.widget.TextView; 

import static ie.wit.fitnessmadeeasy.R.id.imageViewBMI; 

public class BmiActivity extends AppCompatActivity { 


@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_bmi); 

    final Button calc = (Button) findViewById(R.id.calc); 
    final NumberPicker weight = (NumberPicker) findViewById(R.id.et_weight); 
    final NumberPicker height = (NumberPicker) findViewById(R.id.et_height); 
    final TextView result = (TextView) findViewById(R.id.result); 
    final ImageView image = (ImageView) findViewById(imageViewBMI); 


    weight.setMinValue(30); 
    weight.setMaxValue(300); 

    height.setMinValue(30); 
    height.setMaxValue(300); 

    calc.setOnClickListener(new View.OnClickListener() { 
     @Override 
     public void onClick(View v) { 

      // int weightlbs = weight.getValue(); 
      // int heightcm = height.getValue(); 

      // int weights = weight.getValue(); 
      // int heights = height.getValue(); 

      // String weightStr = String.valueOf(weights); 
      // String heightStr = String.valueOf(heights); 
      // double kg = 0.45; 
      //String kgs = String.valueOf(kg); 
      // double meter = 0.025; 

      String heightStr = "" + (height.getValue()); 
      String weightStr = "" + (weight.getValue()); 



      // String heightStr = height.getText().toString(); 
      // String weightStr = weight.getText().toString(); 

      if (heightStr != null && !"".equals(heightStr) 
        && weightStr != null && !"".equals(weightStr)) { 
       double heightValue = Double.parseDouble(heightStr)/100; 
       double weightValue = Double.parseDouble(weightStr); 

       double bmi = weightValue/ (heightValue * heightValue) ; 

       String bmiLabel; 

       if (bmi <= 15) { 
        bmiLabel = getString(R.string.very_very_skinny); 
        image.setImageResource(R.drawable.skinny); 
       } else if (bmi > 15 && bmi <= 16) { 
        bmiLabel = getString(R.string.very_skinny); 
        image.setImageResource(R.drawable.skinny); 
       } else if (bmi > 16 && bmi <= 18.5) { 
        bmiLabel = getString(R.string.skinny); 
        image.setImageResource(R.drawable.skinny); 
       } else if (bmi > 18.5 && bmi <= 25) { 
        bmiLabel = getString(R.string.normal); 
        image.setImageResource(R.drawable.normal); 
       } else if (bmi > 25 && bmi <= 30) { 
        bmiLabel = getString(R.string.overweight); 
        image.setImageResource(R.drawable.fat); 
       } else if (bmi > 30 && bmi <= 35) { 
        bmiLabel = getString(R.string.obese_series_i); 
        image.setImageResource(R.drawable.fat); 
       } else if (bmi > 35 && bmi <= 40) { 
        bmiLabel = getString(R.string.obese_series_ii); 
        image.setImageResource(R.drawable.fat); 
       } else { 
        bmiLabel = getString(R.string.obese_series_iii); 
        image.setImageResource(R.drawable.fat); 

       } 

       bmiLabel ="" + bmi; 

       result.setText(bmiLabel); 


      } 


     } 
    }); 

} 
} 

////////////////////////////////////////// Diese ist Code für Datenbankhilfe SQLiteDatabase db;

+0

Nun müssen Sie die BMI an Ihre DatenbankHelper übergeben, in dem Sie es eingerichtet haben. Das ist sonst keine echte Frage –

+0

, wenn ich vorherige Werte übergeben habe, waren sie für editText und ich bin neu in Android Studio und Sqlite. Welche Art von Code würde die bmi in diesem Code weitergeben? – IrishProgrammer

+0

Woher haben Sie gelernt, sqlite und databaseHelpers zu benutzen? –

Antwort

0

Verwenden Sie eine AsyncTask, um Datenbanktransaktionen durchzuführen.

Initialize DataBaseHelper Objekt als:

DataBaseHelper dataBaseHelper = new DataBaseHelper(context); 

SQLiteDatabase Referenz Erhalten als:

SQLiteDatabase sqLiteDatabase = dataBaseHelper.getWritableDatabase(); 

Verwenden ContentValues erforderliche Werte speichern

ContentValues contentValues = new ContentValues(); 
contentValues.put("bmi", bmiValue) 
contentValues.put("user_id", userID) 

dann in die geeignete Tabelle einfügen als:

sqLiteDatabase.insert("<tableName>", null, contentValues); 
Verwandte Themen