1
0
mirror of https://github.com/oliexdev/openScale.git synced 2025-08-13 12:14:19 +02:00

add an optional comment field for every data entry

This commit is contained in:
OliE
2015-06-27 12:07:31 +02:00
parent b8f2c1e673
commit 65b00d8b14
14 changed files with 384 additions and 81 deletions

View File

@@ -23,8 +23,8 @@
</intent-filter>
</activity>
<activity android:name="com.health.openscale.gui.SettingsActivity"></activity>
<activity android:name="com.health.openscale.gui.NewEntryActivity" android:theme="@android:style/Theme.Holo.Dialog" android:label="@string/title_new_data_entry"></activity>
<activity android:name="com.health.openscale.gui.EditDataActivity" android:theme="@android:style/Theme.Holo.Dialog" android:label="@string/title_edit_data_entry"></activity>
<activity android:name="com.health.openscale.gui.NewEntryActivity" android:theme="@android:style/Theme.Holo.Light.Dialog" android:label="@string/title_new_data_entry"></activity>
<activity android:name="com.health.openscale.gui.EditDataActivity" android:theme="@android:style/Theme.Holo.Light.Dialog" android:label="@string/title_edit_data_entry"></activity>
<activity android:name=".gui.UserSettingsActivity" android:theme="@android:style/Theme.Holo.Dialog" android:label="@string/title_user"></activity>
</application>

View File

@@ -155,7 +155,7 @@ public class OpenScale {
}
public void addScaleData(int user_id, String date_time, float weight, float fat,
float water, float muscle) {
float water, float muscle, String comment) {
ScaleData scaleData = new ScaleData();
try {
@@ -165,6 +165,7 @@ public class OpenScale {
scaleData.fat = fat;
scaleData.water = water;
scaleData.muscle = muscle;
scaleData.comment = comment;
} catch (ParseException e) {
Log.e("OpenScale", "Can't parse date time string while adding to the database");
}
@@ -174,13 +175,14 @@ public class OpenScale {
updateScaleData();
}
public void updateScaleData(long id, float weight, float fat, float water, float muscle) {
public void updateScaleData(long id, float weight, float fat, float water, float muscle, String comment) {
ScaleData scaleData = new ScaleData();
scaleData.weight = weight;
scaleData.fat = fat;
scaleData.water = water;
scaleData.muscle = muscle;
scaleData.comment = comment;
scaleDB.updateEntry(id, scaleData);
@@ -215,6 +217,7 @@ public class OpenScale {
newScaleData.fat = Float.parseFloat(csvField[2]);
newScaleData.water = Float.parseFloat(csvField[3]);
newScaleData.muscle = Float.parseFloat(csvField[4]);
newScaleData.comment = csvField[5];
newScaleData.user_id = getSelectedScaleUser().id;
@@ -246,7 +249,8 @@ public class OpenScale {
csvWriter.append(Float.toString(scaleData.weight) + ",");
csvWriter.append(Float.toString(scaleData.fat) + ",");
csvWriter.append(Float.toString(scaleData.water) + ",");
csvWriter.append(Float.toString(scaleData.muscle));
csvWriter.append(Float.toString(scaleData.muscle) + ",");
csvWriter.append(scaleData.comment);
csvWriter.append("\n");
}

View File

@@ -26,10 +26,11 @@ public class ScaleData {
public float fat;
public float water;
public float muscle;
public String comment;
@Override
public String toString()
{
return "ID : " + id + " USER_ID: " + user_id + " DATE_TIME: " + date_time.toString() + " WEIGHT: " + weight + " FAT: " + fat + " WATER: " + water + " MUSCLE: " + muscle;
return "ID : " + id + " USER_ID: " + user_id + " DATE_TIME: " + date_time.toString() + " WEIGHT: " + weight + " FAT: " + fat + " WATER: " + water + " MUSCLE: " + muscle + " COMMENT: " + comment;
}
}

View File

@@ -31,7 +31,7 @@ import java.util.Calendar;
import java.util.Locale;
public class ScaleDatabase extends SQLiteOpenHelper {
private static final int DATABASE_VERSION = 1;
private static final int DATABASE_VERSION = 2;
private static final String DATABASE_NAME = "openScaleDatabase.db";
private static final String TABLE_NAME = "scaledata";
@@ -42,6 +42,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
private static final String COLUMN_NAME_FAT = "fat";
private static final String COLUMN_NAME_WATER = "water";
private static final String COLUMN_NAME_MUSCLE = "muscle";
private static final String COLUMN_NAME_COMMENT = "comment";
private static final String SQL_CREATE_ENTRIES =
"CREATE TABLE " + TABLE_NAME + " (" +
@@ -51,7 +52,8 @@ public class ScaleDatabase extends SQLiteOpenHelper {
COLUMN_NAME_WEIGHT + " REAL," +
COLUMN_NAME_FAT + " REAL," +
COLUMN_NAME_WATER + " REAL," +
COLUMN_NAME_MUSCLE + " REAL" +
COLUMN_NAME_MUSCLE + " REAL," +
COLUMN_NAME_COMMENT + " TEXT" +
")";
private static final String SQL_DELETE_ENTRIES =
@@ -70,8 +72,9 @@ public class ScaleDatabase extends SQLiteOpenHelper {
@Override
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
db.execSQL(SQL_DELETE_ENTRIES);
onCreate(db);
if (oldVersion == 1 && newVersion == 2) {
db.execSQL("ALTER TABLE " + TABLE_NAME + " ADD COLUMN " + COLUMN_NAME_COMMENT + " TEXT DEFAULT ''");
}
}
public void clearScaleData(int userId) {
@@ -97,6 +100,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
values.put(COLUMN_NAME_FAT, scaleData.fat);
values.put(COLUMN_NAME_WATER, scaleData.water);
values.put(COLUMN_NAME_MUSCLE, scaleData.muscle);
values.put(COLUMN_NAME_COMMENT, scaleData.comment);
try
{
@@ -120,6 +124,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
values.put(COLUMN_NAME_FAT, scaleData.fat);
values.put(COLUMN_NAME_WATER, scaleData.water);
values.put(COLUMN_NAME_MUSCLE, scaleData.muscle);
values.put(COLUMN_NAME_COMMENT, scaleData.comment);
db.update(TABLE_NAME, values, COLUMN_NAME_ID + "=" + id, null);
}
@@ -136,7 +141,8 @@ public class ScaleDatabase extends SQLiteOpenHelper {
COLUMN_NAME_WEIGHT,
COLUMN_NAME_FAT,
COLUMN_NAME_WATER,
COLUMN_NAME_MUSCLE
COLUMN_NAME_MUSCLE,
COLUMN_NAME_COMMENT
};
Cursor cursorScaleDB = db.query(
@@ -159,6 +165,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
scaleData.fat = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_FAT));
scaleData.water = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_WATER));
scaleData.muscle = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_MUSCLE));
scaleData.comment = cursorScaleDB.getString(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_COMMENT));
scaleData.date_time = formatDateTime.parse(date_time);
@@ -265,7 +272,8 @@ public class ScaleDatabase extends SQLiteOpenHelper {
COLUMN_NAME_WEIGHT,
COLUMN_NAME_FAT,
COLUMN_NAME_WATER,
COLUMN_NAME_MUSCLE
COLUMN_NAME_MUSCLE,
COLUMN_NAME_COMMENT
};
String sortOrder = COLUMN_NAME_DATE_TIME + " DESC";
@@ -300,6 +308,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
scaleData.fat = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_FAT));
scaleData.water = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_WATER));
scaleData.muscle = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_MUSCLE));
scaleData.comment = cursorScaleDB.getString(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_COMMENT));
scaleData.date_time = formatDateTime.parse(date_time);
@@ -328,7 +337,8 @@ public class ScaleDatabase extends SQLiteOpenHelper {
COLUMN_NAME_WEIGHT,
COLUMN_NAME_FAT,
COLUMN_NAME_WATER,
COLUMN_NAME_MUSCLE
COLUMN_NAME_MUSCLE,
COLUMN_NAME_COMMENT
};
String sortOrder = COLUMN_NAME_DATE_TIME + " DESC";
@@ -356,6 +366,7 @@ public class ScaleDatabase extends SQLiteOpenHelper {
scaleData.fat = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_FAT));
scaleData.water = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_WATER));
scaleData.muscle = cursorScaleDB.getFloat(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_MUSCLE));
scaleData.comment = cursorScaleDB.getString(cursorScaleDB.getColumnIndexOrThrow(COLUMN_NAME_COMMENT));
scaleData.date_time = formatDateTime.parse(date_time);

View File

@@ -34,6 +34,7 @@ public class EditDataActivity extends Activity {
private EditText txtFat;
private EditText txtWater;
private EditText txtMuscle;
private EditText txtComment;
private Button btnOk;
private Button btnCancel;
@@ -53,6 +54,7 @@ public class EditDataActivity extends Activity {
txtFat = (EditText) findViewById(R.id.txtFat);
txtWater = (EditText) findViewById(R.id.txtWater);
txtMuscle = (EditText) findViewById(R.id.txtMuscle);
txtComment = (EditText) findViewById(R.id.txtComment);
btnOk = (Button)findViewById(R.id.btnOk);
btnCancel = (Button)findViewById(R.id.btnCancel);
@@ -70,27 +72,91 @@ public class EditDataActivity extends Activity {
txtFat.setText(editScaleData.fat+"");
txtWater.setText(editScaleData.water+"");
txtMuscle.setText(editScaleData.muscle+"");
txtComment.setText(editScaleData.comment);
setTitle(getResources().getString(R.string.title_edit_data_entry) + ": " + new SimpleDateFormat("dd. MMM yyyy (EE) HH:mm").format(editScaleData.date_time));
}
private boolean validateInput()
{
boolean validate = true;
if( txtWeight.getText().toString().length() == 0 )
{
txtWeight.setError(getResources().getString(R.string.error_weight_value_required));
validate = false;
} else if( !(Float.valueOf(txtWeight.getText().toString()) >= 0 && Float.valueOf(txtWeight.getText().toString()) <= 300) )
{
txtWeight.setError(getResources().getString(R.string.error_value_range_0_300));
validate = false;
}
if( txtFat.getText().toString().length() == 0 )
{
txtFat.setError(getResources().getString(R.string.error_fat_value_required));
validate = false;
} else if(!isInRange(txtFat.getText().toString()))
{
txtFat.setError(getResources().getString(R.string.error_value_range_0_100));
validate = false;
}
if( txtWater.getText().toString().length() == 0 )
{
txtWater.setError(getResources().getString(R.string.error_water_value_required));
validate = false;
} else if(!isInRange(txtWater.getText().toString()))
{
txtWater.setError(getResources().getString(R.string.error_value_range_0_100));
validate = false;
}
if( txtMuscle.getText().toString().length() == 0 )
{
txtMuscle.setError(getResources().getString(R.string.error_muscle_value_required));
validate = false;
} else if(!isInRange(txtMuscle.getText().toString()))
{
txtMuscle.setError(getResources().getString(R.string.error_value_range_0_100));
validate = false;
}
return validate;
}
private boolean isInRange(String value)
{
if (value.length() == 0)
return false;
float val = Float.valueOf(value);
if (val >= 0 && val <= 100)
return true;
return false;
}
private class onClickListenerOk implements View.OnClickListener {
@Override
public void onClick(View v) {
if (validateInput()) {
float weight = Float.valueOf(txtWeight.getText().toString());
float fat = Float.valueOf(txtFat.getText().toString());
float water = Float.valueOf(txtWater.getText().toString());
float muscle = Float.valueOf(txtMuscle.getText().toString());
String comment = txtComment.getText().toString();
OpenScale openScale = OpenScale.getInstance(context);
openScale.updateScaleData(id, weight, fat, water, muscle);
openScale.updateScaleData(id, weight, fat, water, muscle, comment);
finish();
}
}
}
private class onClickListenerCancel implements View.OnClickListener {
@Override

View File

@@ -17,6 +17,7 @@
package com.health.openscale.gui;
import android.app.Activity;
import android.content.Intent;
import android.content.SharedPreferences;
import android.content.pm.ActivityInfo;
import android.graphics.Color;
@@ -27,12 +28,10 @@ import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import android.widget.Toast;
import com.health.openscale.R;
import com.health.openscale.core.OpenScale;
import com.health.openscale.core.ScaleData;
import com.health.openscale.core.ScaleUser;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
@@ -72,9 +71,6 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
private ArrayList<ScaleData> scaleDataList;
private enum lines {WEIGHT, FAT, WATER, MUSCLE}
private ArrayList<lines> activeLines;
public GraphFragment() {
calYears = Calendar.getInstance();
calLastSelected = Calendar.getInstance();
@@ -180,26 +176,21 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
setHasLabels(prefs.getBoolean("labelsEnable", true)).
setFormatter(new SimpleLineChartValueFormatter(1));
activeLines = new ArrayList<lines>();
if(prefs.getBoolean("weightEnable", true)) {
lines.add(lineWeight);
activeLines.add(GraphFragment.lines.WEIGHT);
}
if(prefs.getBoolean("fatEnable", true)) {
lines.add(lineFat);
activeLines.add(GraphFragment.lines.FAT);
}
if(prefs.getBoolean("waterEnable", true)) {
lines.add(lineWater);
activeLines.add(GraphFragment.lines.WATER);
}
if(prefs.getBoolean("muscleEnable", true)) {
lines.add(lineMuscle);
activeLines.add(GraphFragment.lines.MUSCLE);
}
LineChartData lineData = new LineChartData(lines);
@@ -291,24 +282,12 @@ public class GraphFragment extends Fragment implements FragmentUpdateListener {
@Override
public void onValueSelected(int lineIndex, int pointIndex, PointValue pointValue) {
ScaleData scaleData = scaleDataList.get(pointIndex);
lines selectedLine = activeLines.get(lineIndex);
String date_time = new SimpleDateFormat("dd. MMM yyyy (EE) HH:mm").format(scaleData.date_time);
long id = scaleData.id;
switch (selectedLine) {
case WEIGHT:
Toast.makeText(getActivity(), getResources().getString(R.string.info_your_weight) + " " + scaleData.weight + ScaleUser.UNIT_STRING[OpenScale.getInstance(graphView.getContext()).getSelectedScaleUser().scale_unit] + " " + getResources().getString(R.string.info_on_date) + " " + date_time, Toast.LENGTH_SHORT).show();
break;
case FAT:
Toast.makeText(getActivity(), getResources().getString(R.string.info_your_fat) + " " + scaleData.fat + "% " + getResources().getString(R.string.info_on_date) + " " + date_time, Toast.LENGTH_SHORT).show();
break;
case WATER:
Toast.makeText(getActivity(), getResources().getString(R.string.info_your_water) + " " + scaleData.water + "% " + getResources().getString(R.string.info_on_date) + " " + date_time, Toast.LENGTH_SHORT).show();
break;
case MUSCLE:
Toast.makeText(getActivity(), getResources().getString(R.string.info_your_muscle) + " " + scaleData.muscle + "% " + getResources().getString(R.string.info_on_date) + " " + date_time, Toast.LENGTH_SHORT).show();
break;
}
Intent intent = new Intent(graphView.getContext(), EditDataActivity.class);
intent.putExtra("id", id);
startActivityForResult(intent, 1);
}
@Override

View File

@@ -46,6 +46,7 @@ public class NewEntryActivity extends Activity {
private EditText txtMuscle;
private EditText txtDate;
private EditText txtTime;
private EditText txtComment;
private SimpleDateFormat dateFormat = new SimpleDateFormat("dd.MM.yyyy");
private SimpleDateFormat timeFormat = new SimpleDateFormat("HH:mm");
@@ -65,6 +66,7 @@ public class NewEntryActivity extends Activity {
txtMuscle = (EditText) findViewById(R.id.txtMuscle);
txtDate = (EditText) findViewById(R.id.txtDate);
txtTime = (EditText) findViewById(R.id.txtTime);
txtComment = (EditText) findViewById(R.id.txtComment);
Button btnDateSet = (Button) findViewById(R.id.btnDateSet);
Button btnTimeSet = (Button) findViewById(R.id.btnTimeSet);
@@ -192,11 +194,12 @@ public class NewEntryActivity extends Activity {
float fat = Float.valueOf(txtFat.getText().toString());
float water = Float.valueOf(txtWater.getText().toString());
float muscle = Float.valueOf(txtMuscle.getText().toString());
String comment = txtComment.getText().toString();
String date = txtDate.getText().toString();
String time = txtTime.getText().toString();
openScale.addScaleData(selectedUserId, date + " " + time, weight, fat, water, muscle);
openScale.addScaleData(selectedUserId, date + " " + time, weight, fat, water, muscle, comment);
finish();
}

View File

@@ -43,6 +43,7 @@ import java.util.List;
import java.util.concurrent.TimeUnit;
import lecho.lib.hellocharts.formatter.SimpleLineChartValueFormatter;
import lecho.lib.hellocharts.listener.LineChartOnValueSelectListener;
import lecho.lib.hellocharts.listener.PieChartOnValueSelectListener;
import lecho.lib.hellocharts.model.Axis;
import lecho.lib.hellocharts.model.AxisValue;
@@ -92,11 +93,16 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener
private PieChartView pieChartLast;
private LineChartView lineChartLast;
private enum lines {WEIGHT, FAT, WATER, MUSCLE}
private ArrayList<lines> activeLines;
private SharedPreferences prefs;
private ScaleData lastScaleData;
private ScaleUser currentScaleUser;
private List<ScaleData> scaleDataLastDays;
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState)
{
@@ -136,6 +142,8 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener
pieChartLast = (PieChartView) overviewView.findViewById(R.id.pieChartLast);
lineChartLast = (LineChartView) overviewView.findViewById(R.id.lineChartLast);
lineChartLast.setOnValueTouchListener(new LineChartTouchListener());
pieChartLast.setOnValueTouchListener(new PieChartLastTouchListener());
pieChartLast.setChartRotationEnabled(false);
@@ -329,9 +337,13 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener
lastDate.setTime(scaleDataList.get(0).date_time);
scaleDataLastDays = new ArrayList<ScaleData>();
for (int i=0; i<max_i; i++) {
ScaleData histData = scaleDataList.get(max_i - i - 1);
scaleDataLastDays.add(histData);
valuesWeight.add(new PointValue(i, histData.weight));
valuesFat.add(new PointValue(i, histData.fat));
valuesWater.add(new PointValue(i, histData.water));
@@ -365,20 +377,26 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener
setHasLabels(prefs.getBoolean("labelsEnable", true)).
setFormatter(new SimpleLineChartValueFormatter(1));
activeLines = new ArrayList<lines>();
if(prefs.getBoolean("weightEnable", true)) {
lines.add(lineWeight);
activeLines.add(OverviewFragment.lines.WEIGHT);
}
if(prefs.getBoolean("fatEnable", true)) {
lines.add(lineFat);
activeLines.add(OverviewFragment.lines.FAT);
}
if(prefs.getBoolean("waterEnable", true)) {
lines.add(lineWater);
activeLines.add(OverviewFragment.lines.WATER);
}
if(prefs.getBoolean("muscleEnable", true)) {
lines.add(lineMuscle);
activeLines.add(OverviewFragment.lines.MUSCLE);
}
LineChartData lineData = new LineChartData(lines);
@@ -490,4 +508,34 @@ public class OverviewFragment extends Fragment implements FragmentUpdateListener
}
}
}
private class LineChartTouchListener implements LineChartOnValueSelectListener {
@Override
public void onValueSelected(int lineIndex, int pointIndex, PointValue pointValue) {
ScaleData scaleData = scaleDataLastDays.get(pointIndex);
lines selectedLine = activeLines.get(lineIndex);
String date_time = new SimpleDateFormat("dd. MMM yyyy (EE) HH:mm").format(scaleData.date_time);
switch (selectedLine) {
case WEIGHT:
Toast.makeText(getActivity(), getResources().getString(R.string.info_your_weight) + " " + scaleData.weight + ScaleUser.UNIT_STRING[OpenScale.getInstance(overviewView.getContext()).getSelectedScaleUser().scale_unit] + " " + getResources().getString(R.string.info_on_date) + " " + date_time, Toast.LENGTH_SHORT).show();
break;
case FAT:
Toast.makeText(getActivity(), getResources().getString(R.string.info_your_fat) + " " + scaleData.fat + "% " + getResources().getString(R.string.info_on_date) + " " + date_time, Toast.LENGTH_SHORT).show();
break;
case WATER:
Toast.makeText(getActivity(), getResources().getString(R.string.info_your_water) + " " + scaleData.water + "% " + getResources().getString(R.string.info_on_date) + " " + date_time, Toast.LENGTH_SHORT).show();
break;
case MUSCLE:
Toast.makeText(getActivity(), getResources().getString(R.string.info_your_muscle) + " " + scaleData.muscle + "% " + getResources().getString(R.string.info_on_date) + " " + date_time, Toast.LENGTH_SHORT).show();
break;
}
}
@Override
public void onValueDeselected() {
}
}
}

View File

@@ -84,6 +84,8 @@ public class TableFragment extends Fragment implements FragmentUpdateListener {
txtWaterTableHeader.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
TextView txtMuscleTableHeader = (TextView)tableView.findViewById(R.id.txtMuscleTableHeader);
txtMuscleTableHeader.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
TextView txtCommentTableHeader = (TextView)tableView.findViewById(R.id.txtCommentTableHeader);
txtCommentTableHeader.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
Button btnDeleteAll = (Button)tableView.findViewById(R.id.btnDeleteAll);
btnDeleteAll.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
}
@@ -143,6 +145,12 @@ public class TableFragment extends Fragment implements FragmentUpdateListener {
muscleView.setPadding(0, 5, 5, 5);
dataRow.addView(muscleView);
TextView commentView = new TextView(tableView.getContext());
commentView.setText(scaleData.comment);
commentView.setPadding(0, 5, 5, 5);
dataRow.addView(commentView);
Button deleteButton = new Button(tableView.getContext());
deleteButton.setText("X");
deleteButton.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 10);
@@ -166,6 +174,7 @@ public class TableFragment extends Fragment implements FragmentUpdateListener {
fatView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
waterView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
muscleView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
commentView.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 11);
}
tableDataView.addView(dataRow, new TableLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT));

Binary file not shown.

After

Width:  |  Height:  |  Size: 998 B

View File

@@ -9,25 +9,36 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:stretchColumns="*" >
android:stretchColumns="2" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/imageView10"
android:layout_column="0"
android:src="@drawable/weight"
android:layout_gravity="center"
android:layout_marginRight="2dp" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_weight" />
android:text="@string/label_weight"
android:layout_column="1" />
<EditText
android:id="@+id/txtWeight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberDecimal|numberSigned">
android:inputType="numberDecimal|numberSigned"
android:layout_column="2">
<requestFocus />
</EditText>
@@ -39,17 +50,28 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/imageView12"
android:layout_column="0"
android:src="@drawable/fat"
android:layout_gravity="center"
android:layout_marginRight="2dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_fat" />
android:text="@string/label_fat"
android:layout_column="1" />
<EditText
android:id="@+id/txtFat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberDecimal|numberSigned" />
android:inputType="numberDecimal|numberSigned"
android:layout_column="2" />
</TableRow>
@@ -58,11 +80,21 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/imageView13"
android:layout_column="0"
android:src="@drawable/water"
android:layout_gravity="center"
android:layout_marginRight="2dp" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_water" />
android:text="@string/label_water"
android:layout_column="1" />
<EditText
android:id="@+id/txtWater"
@@ -70,7 +102,8 @@
android:layout_height="wrap_content"
android:layout_weight="5"
android:ems="10"
android:inputType="numberDecimal|numberSigned" />
android:inputType="numberDecimal|numberSigned"
android:layout_column="2" />
</TableRow>
@@ -79,17 +112,58 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/imageView14"
android:layout_column="0"
android:src="@drawable/muscle"
android:layout_gravity="center"
android:layout_marginRight="2dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_muscle" />
android:text="@string/label_muscle"
android:layout_column="1" />
<EditText
android:id="@+id/txtMuscle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:inputType="numberDecimal|numberSigned" />
android:inputType="numberDecimal|numberSigned"
android:layout_column="2" />
</TableRow>
<TableRow
android:id="@+id/tableRow12"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/imageView15"
android:layout_column="0"
android:src="@drawable/comment"
android:layout_gravity="center"
android:layout_marginRight="2dp" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_comment"
android:layout_column="1" />
<EditText
android:id="@+id/txtComment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:layout_column="2"
android:inputType="text|textImeMultiLine|textMultiLine|textAutoComplete|textAutoCorrect" />
</TableRow>
</TableLayout>

View File

@@ -9,18 +9,28 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:padding="5dp"
android:stretchColumns="*" >
android:stretchColumns="2" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/imageView16"
android:layout_column="0"
android:src="@drawable/weight"
android:layout_gravity="center"
android:layout_marginRight="2dp" />
<TextView
android:id="@+id/textView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_weight" />
android:text="@string/label_weight"
android:layout_column="1" />
<EditText
android:id="@+id/txtWeight"
@@ -28,7 +38,8 @@
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/info_enter_value_unit"
android:inputType="numberDecimal" >
android:inputType="numberDecimal"
android:layout_column="2">
<requestFocus />
</EditText>
@@ -40,11 +51,21 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/imageView17"
android:layout_column="0"
android:src="@drawable/fat"
android:layout_gravity="center"
android:layout_marginRight="2dp" />
<TextView
android:id="@+id/txtAvgWeight"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_fat" />
android:text="@string/label_fat"
android:layout_column="1" />
<EditText
android:id="@+id/txtFat"
@@ -52,7 +73,8 @@
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/info_enter_value_percent"
android:inputType="numberDecimal" />
android:inputType="numberDecimal"
android:layout_column="2" />
</TableRow>
@@ -61,11 +83,21 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/imageView18"
android:layout_column="0"
android:src="@drawable/water"
android:layout_gravity="center"
android:layout_marginRight="2dp" />
<TextView
android:id="@+id/textView3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_water" />
android:text="@string/label_water"
android:layout_column="1" />
<EditText
android:id="@+id/txtWater"
@@ -73,7 +105,8 @@
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/info_enter_value_percent"
android:inputType="numberDecimal" />
android:inputType="numberDecimal"
android:layout_column="2" />
</TableRow>
@@ -82,11 +115,21 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/imageView21"
android:layout_column="0"
android:src="@drawable/muscle"
android:layout_gravity="center"
android:layout_marginRight="2dp" />
<TextView
android:id="@+id/txtAvgFat"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_muscle" />
android:text="@string/label_muscle"
android:layout_column="1" />
<EditText
android:id="@+id/txtMuscle"
@@ -94,20 +137,62 @@
android:layout_height="wrap_content"
android:ems="10"
android:hint="@string/info_enter_value_percent"
android:inputType="numberDecimal" />
android:inputType="numberDecimal"
android:layout_column="2" />
</TableRow>
<TableRow
android:id="@+id/tableRow13"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/imageView22"
android:layout_column="0"
android:src="@drawable/comment"
android:layout_gravity="center"
android:layout_marginRight="2dp" />
<TextView
android:id="@+id/txtView22"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_comment"
android:layout_column="1" />
<EditText
android:id="@+id/txtComment"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:ems="10"
android:layout_column="2"
android:inputType="text|textImeMultiLine|textMultiLine|textAutoComplete|textAutoCorrect"
android:hint="@string/info_enter_comment" />
</TableRow>
<TableRow
android:id="@+id/tableRow5"
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/imageView19"
android:layout_column="0"
android:src="@drawable/lastmonth"
android:layout_gravity="center"
android:layout_marginRight="2dp" />
<TextView
android:id="@+id/textView5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_date" />
android:text="@string/label_date"
android:layout_column="1" />
<EditText
android:id="@+id/txtDate"
@@ -116,14 +201,16 @@
android:layout_weight="5"
android:ems="10"
android:enabled="false"
android:inputType="date" />
android:inputType="date"
android:layout_column="2" />
<Button
android:id="@+id/btnDateSet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_set"
android:textSize="15sp" />
android:textSize="15sp"
android:layout_column="3" />
</TableRow>
@@ -132,11 +219,21 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content" >
<ImageView
android:layout_width="30dp"
android:layout_height="30dp"
android:id="@+id/imageView20"
android:layout_column="0"
android:src="@drawable/daysleft"
android:layout_gravity="center"
android:layout_marginRight="2dp" />
<TextView
android:id="@+id/txtAvgWater"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_time" />
android:text="@string/label_time"
android:layout_column="1" />
<EditText
android:id="@+id/txtTime"
@@ -145,14 +242,16 @@
android:layout_weight="5"
android:ems="10"
android:enabled="false"
android:inputType="time" />
android:inputType="time"
android:layout_column="2" />
<Button
android:id="@+id/btnTimeSet"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_set"
android:textSize="15sp" />
android:textSize="15sp"
android:layout_column="3" />
</TableRow>

View File

@@ -17,9 +17,9 @@
android:id="@+id/tableDataView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:shrinkColumns="*"
android:measureWithLargestChild="false"
android:stretchColumns="1,2,3,4,5,6">
android:stretchColumns="1,2,3,4,5,6,7"
android:shrinkColumns="*">
<TableRow
android:id="@+id/tableHeader"
@@ -76,6 +76,13 @@
android:textStyle="bold"
android:id="@+id/txtMuscleTableHeader" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/label_comment"
android:textStyle="bold"
android:id="@+id/txtCommentTableHeader" />
<Button
android:id="@+id/btnDeleteAll"
android:layout_width="wrap_content"

View File

@@ -7,7 +7,7 @@
<string name="title_frag">Table</string>
<string name="title_user">User</string>
<string name="title_new_data_entry">Data entry</string>
<string name="title_edit_data_entry">Edit data entry</string>
<string name="title_edit_data_entry">Edit</string>
<string name="action_settings">Settings</string>
@@ -24,6 +24,7 @@
<string name="label_fat">Fat</string>
<string name="label_water">Water</string>
<string name="label_muscle">Muscle</string>
<string name="label_comment">Comment</string>
<string name="label_days">days</string>
<string name="label_measures">measures</string>
@@ -75,6 +76,7 @@
<string name="info_set_filename">Set filename to</string>
<string name="info_enter_value_percent">Enter value in %</string>
<string name="info_enter_value_unit">Enter value in</string>
<string name="info_enter_comment">Enter an optional comment</string>
<string name="info_enter_goal_weight">Enter your goal weight in your scale unit</string>
<string name="info_is_visible">Is visible</string>
<string name="info_is_not_visible">Is not visible</string>