我需要用户输入图形坐标。问题是,我不知道有多少。所以我希望有一个“添加点”按钮,它将两个字段(用于x和y坐标)插入到一个新的表行中,供用户添加更多的坐标。
另外,当我想从中获取数据时,如何识别这些新字段?通常,我已经知道字段的ID并使用findViewById(R.id.ID_here)调用它们;现在我该怎么做才能识别它们?
我正在将所有这些坐标写入文件中,所以如果有办法编写它们而不识别每个坐标,请帮助。
编辑:
我无法让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);
如果可以,请帮忙。
答案 0 :(得分:7)
您可以像这样创建新行(或任何其他类型的View):
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 ...如果你觉得答案有用,别忘了向他们投票和/或将它们标记为正确。