Hallo,
ich möchte mir über TableRows dynamisch meine Tabelle anzeigen lassen, allerdings wird dies nicht angezeigt. Zu meinem Code:
Ich hab 2 Klassen:
public class LiveAufnahme extends Activity {
Button start, stop, charts;
@Override
public void onCreate(Bundle savedInstanceState) {
try {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
start = (Button) findViewById(R.id.startButton);
start.setOnClickListener(startButton);
stop = (Button) findViewById(R.id.stopButton);
stop.setOnClickListener(stopButton);
charts = (Button) findViewById(R.id.chartsButton);
charts.setOnClickListener(chartsButton);
} catch (Exception ex) {
String s = ex.getMessage();
String str = s;
}
}
//Ein paar OnClickListener Methoden
//...
OnClickListener chartsButton = new OnClickListener() {
@Override
public void onClick(View v) {
Intent intent = new Intent();
intent.setClass(LiveAufnahme.this, SensorWork.class);
startActivityForResult(intent, 0);
}
};
//Methode holt mir eine Liste aus meiner 2. Klasse (2. Activity, die über eine OnClickMethode gestartet wird)
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 0) {
if (resultCode == RESULT_OK) {
double[] x_datas = data.getDoubleArrayExtra("x_array");
double a = x_datas[(int)(x_datas.length/2)];
}
}
}
}
Alles anzeigen
Xml Datei zur Main:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/mainLayout"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="fill_parent">
<Button android:id="@+id/startButton" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="Start" />
<Button android:id="@+id/stopButton" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="Stop" />
<Button android:id="@+id/chartsButton" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="Charts" />
</LinearLayout>
Alles anzeigen
Meine zweite Acitivty (Klasse) sieht im Groben so aus:
public class SensorWork extends Activity implements SensorListener,
OnTouchListener {
//Variablen...
super.onCreate(savedInstanceState);
setContentView(R.layout.charts);
sensorManager = SensorManagerSimulator.getSystemService(this,
SENSOR_SERVICE);
sensorManager.connectSimulator();
// result = (TextView) findViewById(R.id.valuesText);
// result.setText("No result yet...");
// Horizontale Bewegung zuweisen
this.vf = (ViewFlipper) findViewById(R.id.flipper);
// Flipper mit Layouts füllen - siehe main.xml
if (this.vf != null) {
viewCharts = vf.getChildAt(0);
viewDatas = vf.getChildAt(1);
vf.setDisplayedChild(0);
}
LinearLayout layMain = (LinearLayout) findViewById(R.id.flipperlayout);
layMain.setOnTouchListener((OnTouchListener) this);
//...
dataTable = (TableLayout) findViewById(R.id.myTableLayout);
}
//Bei jedem neuen Wert, eine neue ROW anlegen
public void onSensorChanged(int sensor, float[] values) {
createRow(values[0], values[1], values[2], Color.rgb(65, 105, 255));
}
public void createRow(float x, float y, float z, int rowColor) {
try {
TableRow tr = new TableRow(this);
tr.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT,
LayoutParams.WRAP_CONTENT));
tr.setBackgroundColor(rowColor);
TextView data_x = new TextView(this);
// data_x.setTextColor(Color.WHITE);
data_x.setGravity(17);
data_x.setText(x + "");
TextView data_y = new TextView(this);
data_y.setGravity(17);
data_y.setText(y + "");
TextView data_z = new TextView(this);
data_z.setGravity(17);
data_z.setText(z + "");
tr.addView(data_x);
tr.addView(data_y);
tr.addView(data_z);
dataTable.addView(tr);
} catch (Exception ex) {
}
}
}
Alles anzeigen
Xml Ansicht für die Tabelle:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent" android:layout_height="fill_parent">
<TableLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/myTableLayout" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:stretchColumns="*"
android:background="#ffffff">
<TableRow>
<TextView android:id="@+id/row_x" android:text="X"
android:background="#000000" android:layout_margin="1dip" />
<TextView android:id="@+id/row_y" android:text="Y"
android:background="#000000" android:layout_margin="1dip" />
<TextView android:id="@+id/row_z" android:text="Z"
android:background="#000000" android:layout_margin="1dip" />
</TableRow>
</TableLayout>
</LinearLayout>
Alles anzeigen
Was mache ich? Also über die erste Activity habe ich sozusagen ein kleines Testmenü worüber ich dann eine 2. Activity starte... Wenn diese zweite beendet wird, erhalte ich eine Liste von Werten zurück die mein Sensor aufnimmt!
Neben der Live Anzeige der Kurven (funktioniert wunderbar), möchte ich die Zahlenwerte auch in einer TableRow LIVE anzeigen lassen, das mache ich dann mit meiner createRow() Methode. Die Graphen und die Tabelle liegen auf einem Flipper-Control um schön zwischen beiden zu wechseln... (Flippen funktioniert auch wunderbar)
Allerdings werden die Werte NICHT angezeigt bzw. die ROWs werden nicht erstellt und ich weiß nicht woran das liegen könnte? Ich bitte um Hilfe!!!
Vielen Dank für eure Hilfe!