android - Dynamisch Sie Zeile hinzufügen, um eine Tabelle mit Daten aus der text-Eintrag

Ich versuche zu erfassen, die Daten aus den text-Eintrag und fügen Sie die Daten in die Tabelle layout und aktualisieren das layout. Wenn ich auf "Hinzufügen" klicken, erscheint ein Dialogfeld mit dem text-Feld. Nachdem ich nichts eingeben, und klicken Sie auf "OK", es sollte eine neue Zeile und aktualisieren Sie die Ansicht.

<TableLayout android:id="@+id/table"
             android:layout_width="fill_parent"
             android:layout_height="fill_parent"
             android:background="#f7ad5d"
             android:weightSum="1">

    <TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tableRow1">
        <Button android:layout_width="100px" android:text="Add" android:textSize="13px" android:layout_height="50px" android:id="@+id/add_button"></Button>
    </TableRow>
    <TableRow android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/tableRow2">
        <TextView android:id="@+id/textView2" android:layout_width="wrap_content" android:layout_height="wrap_content" android:textColor="#000000" android:text="  My List"></TextView>
    </TableRow>

</TableLayout>

    @Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.main);

    Button addBtn = (Button) findViewById(R.id.add_button);
    addBtn.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            showDialog();
        }
    });
}

    private void update() {
    TableLayout table = (TableLayout)findViewById(R.id.table);
    TableRow tr = new TableRow(this);
    tr.setLayoutParams(new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

    TextView tv = new TextView(this);
    tv.setText("New Entry");
    tr.addView(tv);

    table.addView(tr, new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));
}


    /**
 * Show a dialog
 */
private void showDialog() {
    final AlertDialog.Builder alert = new AlertDialog.Builder(this);
    final EditText input = new EditText(this);
    alert.setView(input);
    alert.setPositiveButton("Ok", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            String value = input.getText().toString().trim();
            Toast.makeText(getApplicationContext(), value, Toast.LENGTH_SHORT).show();
            finish();
            startActivity(getIntent());
            update();
        }
    });

    alert.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int whichButton) {
            dialog.cancel();
        }
    });
    alert.show();
}

Für jetzt, ich bin nicht der Erfassung von Daten aus der Eingabe von text. Ich bin nur versuchen, fügen Sie eine dummy-Daten zu der Tisch-Layouts, die mit dummy-Daten, aber ich bekomme immer "Das angegebene Kind bereits einen Elternteil. Rufen Sie removeView() auf die Eltern zuerst." in dieser Zeile,

Tabelle.addView(tr, new TableLayout.LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));

Ich bin ein Anfänger auf android-Entwicklung. Es wäre toll, wenn jemand kann mir einige Tipps zu diesem Thema.

Dank.

Der code sieht ok aus. Aus dem link @Parth_90 vorausgesetzt, Sie sind setting id auf die Zeilen, die Sie hinzufügen. Hast du das ausprobiert?

InformationsquelleAutor user826323 | 2011-12-09

Schreibe einen Kommentar