如何在Android中动态添加表中的字段?

如何在Android中动态添加表中的字段?,android,dynamic,view,Android,Dynamic,View,我需要用户输入图形坐标。问题是,我不知道有多少。所以我想有一个addpoint按钮,它将x和y坐标的两个字段插入到一个新的表行中,以便用户添加更多的坐标 另外,当我想从这些新字段中获取数据时,如何识别它们?通常,我已经知道字段的ID,并在此处使用findViewByIdR.ID.ID_调用它们;现在我该如何识别它们 我正在将所有这些坐标写入一个文件,因此如果有一种方法可以在不识别每个坐标的情况下写入坐标,请提供帮助 编辑: 我无法使edittext字段具有以下布局参数属性: android:la

我需要用户输入图形坐标。问题是,我不知道有多少。所以我想有一个addpoint按钮,它将x和y坐标的两个字段插入到一个新的表行中,以便用户添加更多的坐标

另外,当我想从这些新字段中获取数据时,如何识别它们?通常,我已经知道字段的ID,并在此处使用findViewByIdR.ID.ID_调用它们;现在我该如何识别它们

我正在将所有这些坐标写入一个文件,因此如果有一种方法可以在不识别每个坐标的情况下写入坐标,请提供帮助

编辑:

我无法使edittext字段具有以下布局参数属性:

android:layout_width="0px"
android:layout_height="wrap_content"
android:layout_weight="1"
android:inputType="numberDecimal"
下面是我的JAVA代码:

            TableLayout table = (TableLayout) findViewById(R.id.TableLayout1);

            TableRow tr = new TableRow(this);
            LinearLayout.LayoutParams trparams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.WRAP_CONTENT);
            tr.setLayoutParams(trparams);

            cg[i] = new EditText(this);
            weight[i] = new EditText(this);
            LinearLayout.LayoutParams fieldparams = new LinearLayout.LayoutParams(100, LinearLayout.LayoutParams.WRAP_CONTENT, 1.0f);
            cg[i].setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
            weight[i].setInputType(InputType.TYPE_NUMBER_FLAG_DECIMAL);
            cg[i].setLayoutParams(fieldparams);
            weight[i].setLayoutParams(fieldparams);

            tr.addView(cg[i]);
            tr.addView(weight[i]);

            table.addView(tr);

如果可以的话,请帮忙

您可以创建新行或任何其他类型的视图,如下所示:

TableRow tr = new TableRow(myContext); // usually myContext is 'this'
然后,将tr添加到父视图中

TableLayout myTable = findViewById(R.id.TableLayout1);

LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
tr.setLayoutParams(lp);
myTable.addView(tr);
在添加视图之前,需要将layoutParams添加到视图中,因为所有视图都必须至少指定其布局宽度和布局高度

如果您需要将子项添加到行中,显然您会这样做,否则有什么用呢?您只需重复此过程,除非现在创建一个EditText。一旦您这样做,您将自动拥有对它的引用,因为您创建了它!:

我不清楚你问题的最后一部分是什么意思,你在哪里把它们写进文件。请详细说明


哦,欢迎来到Stack。。。如果您发现答案有用,请不要忘记对其进行追加投票和/或将其标记为正确。

您可以创建新行或任何其他类型的视图,如下所示:

TableRow tr = new TableRow(myContext); // usually myContext is 'this'
然后,将tr添加到父视图中

TableLayout myTable = findViewById(R.id.TableLayout1);

LayoutParams lp = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
tr.setLayoutParams(lp);
myTable.addView(tr);
在添加视图之前,需要将layoutParams添加到视图中,因为所有视图都必须至少指定其布局宽度和布局高度

如果您需要将子项添加到行中,显然您会这样做,否则有什么用呢?您只需重复此过程,除非现在创建一个EditText。一旦您这样做,您将自动拥有对它的引用,因为您创建了它!:

我不清楚你问题的最后一部分是什么意思,你在哪里把它们写进文件。请详细说明


哦,欢迎来到Stack。。。如果你觉得答案有用,别忘了给他们投票和/或把他们标为正确。

谢谢。我面临的一个问题是:如果我试图为编辑文本框设置布局参数,它们不会在单击按钮时显示。我不明白为什么。我希望edittext字段具有以下参数:android:layout\u width=0px android:layout\u height=wrap\u content android:layout\u weight=1 android:inputType=numberDecimal如果版面宽度=0px它们将不可见!谢谢我找到了我一直在寻找的答案。问题是我使用LinearLayout而不是TableRowLayout作为布局参数。谢谢。我面临的一个问题是:如果我试图为编辑文本框设置布局参数,它们不会在单击按钮时显示。我不明白为什么。我希望edittext字段具有以下参数:android:layout\u width=0px android:layout\u height=wrap\u content android:layout\u weight=1 android:inputType=numberDecimal如果版面宽度=0px它们将不可见!谢谢我找到了我一直在寻找的答案。问题是我使用LinearLayout而不是TableRowLayout作为布局参数。