如何在Android中动态添加表中的字段?
Posted
技术标签:
【中文标题】如何在Android中动态添加表中的字段?【英文标题】:How to dynamically add fields in table in Android? 【发布时间】:2012-01-30 08:15:23 【问题描述】:我需要用户输入图形坐标。问题是,我不知道有多少。所以我想要一个“添加点”按钮,它将两个字段(用于 x 和 y 坐标)插入到新的表格行中,以便用户添加更多坐标。
另外,当我想从中获取数据时,如何识别这些新字段?通常,我已经知道该字段的 ID 并使用 findViewById(R.id.ID_here); 调用它们。现在我该怎么做才能识别它们?
我正在将所有这些坐标写入一个文件,所以如果有一种方法可以在不识别每个坐标的情况下写入它们,请帮忙。
编辑:
我无法让 edittext 字段拥有这些布局参数属性:
android:layout_
android:layout_
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);
如果可以,请提供帮助。
【问题讨论】:
【参考方案1】:您可以像这样创建新行(或任何其他类型的视图):
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_ android:layout_ android:layout_weight="1" android:inputType="numberDecimal" 请帮助 如果 layout_width = 0px 他们将不可见! 谢谢。我找到了我正在寻找的答案。问题是我使用 LinearLayout 而不是 TableRowLayout 作为布局参数。以上是关于如何在Android中动态添加表中的字段?的主要内容,如果未能解决你的问题,请参考以下文章