Tjenare.
Jag är en erfaren programmerare C++,C#, ASP.NET xhtml javascript blablabla ännu fler språk etc men är ny på både Java och Android-dev.
Det jag vill göra är att dynamiskt lägga till table-rader med hjälp av en knapp men får inte det att fungera. Jag har en simpel layout som ser ut såhär:
PHP:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:id="@+id/LinearLayout01" android:layout_width="fill_parent" android:layout_height="fill_parent" xmlns:android="http://schemas.android.com/apk/res/android">
<TableLayout android:id="@+id/mainTable" android:layout_width="wrap_content" android:layout_height="wrap_content" android:tag="mainTable">
<TableRow android:id="@+id/TableRow01" android:layout_width="wrap_content" android:layout_height="wrap_content">
<TextView android:text="Namn" android:id="@+id/TextView01" android:layout_width="100pt" android:layout_height="wrap_content"></TextView>
<TextView android:text="Antal" android:id="@+id/Header2" android:layout_width="wrap_content" android:layout_height="wrap_content"></TextView>
</TableRow>
</TableLayout>
</LinearLayout>
och koden kommer här:
PHP:
package com.Test;
import android.app.Activity;
import android.content.Context;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.View.OnKeyListener;
import android.widget.*;
public class Test extends Activity {
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
TableLayout table = (TableLayout)findViewById(R.id.mainTable);
table.addView(FormRow());
}
private OnKeyListener EditTextNoEnter() {
OnKeyListener keyListener = new OnKeyListener() {
public boolean onKey(View v, int keyCode, KeyEvent event) {
// If the event is a key-down event on the "enter" button
if ((event.getAction() == KeyEvent.ACTION_DOWN) &&
(keyCode == KeyEvent.KEYCODE_ENTER)) {
return true;
}
return false;
}
};
return keyListener;
}
private TableRow FormRow() {
final TableRow row = new TableRow(this);
final EditText textName = new EditText(this);
textName.setHint("Vara");
textName.setWidth(200);
textName.setOnKeyListener(EditTextNoEnter());
final EditText textAmount = new EditText(this);
textAmount.setText("1");
textAmount.setWidth(30);
textAmount.setOnKeyListener(EditTextNoEnter());
final Button buttonAdd = new Button(this);
buttonAdd.setText("OK");
buttonAdd.setOnClickListener(new OnClickListener(){
public void onClick(View v) {
TableLayout table = (TableLayout)findViewById(R.id.mainTable);
table.addView(row);
}
});
final CheckBox check = new CheckBox(this);
check.setVisibility(0);
return row;
}
}
Det jag har gjort är en funktion för att lägga till en rad till den redan existerande tabellen, men jag vet inte exakt hur jag ska gå till väga för att få tag på tabellen, lägga till en rad och sen få det att visas på skärmen. Jag har googlat en massa men hittar inget konkret som får det att funka. :/
Hur gör man? Kanske nån har nått exempel bara hur man dynamiskt får tag på en View och gör nått med den som visas på skärmen? Typ kanske ändra designen eller nått bara.