我有一个相对布局和'n'个textview和edittext。我希望对齐为
TextView EditText
Button
TextView EditText
Button
TextView EditText
Button
TextView EditText
Button
..........
我尝试过使用布局参数但是我得到了奇怪的结果。 这是我的代码,
RelativeLayout relativeLayout = (RelativeLayout) findViewById(R.id.linearlayoutid);
final TextView[] myTextViews = new TextView[41];
for (int i = 0; i < 41; i++) {
// create a new textview
rowTextView = new TextView(this);
RelativeLayout.LayoutParams paramsA = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
paramsA.addRule(RelativeLayout.RIGHT_OF, rowTextView.getId());
rowTextView.setId(i);
// add the textview to the layout
relativeLayout.addView(rowTextView, paramsA);
myTextViews[i] = rowTextView;
}
编辑文字..
final EditText[] editTextarray = new EditText[41];
for (int i = 0; i < 41; i++) {
// create a new textview
final EditText editText = new EditText(this);
RelativeLayout.LayoutParams paramsB = new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.WRAP_CONTENT, RelativeLayout.LayoutParams.WRAP_CONTENT);
editText.setText("edit");
editText.setCursorVisible(true);
relativeLayout.addView(editText, paramsB);
editTextarray[i] = editText;
}
我已经应用了layout_params,但它没有帮助。任何帮助都会很棒!!感谢
答案 0 :(得分:1)
添加布局
layout.xml
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:id="@+id/ll"
>
<TextView
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="textview"
/>
<EditText
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_weight="1"
android:text="Edittex"
/>
</LinearLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/ll"
android:layout_centerHorizontal="true"
android:text="button"
/>
</RelativeLayout>
在运行时添加此布局:
View view;
LayoutInflater inflater = (LayoutInflater)getSystemService(Context.LAYOUT_INFLATER_SERVICE);
for (int i = 0; i < 40; i++) {
view= inflater.inflate(R.layout.layout, null);
linearLayout.addView(view);
}
答案 1 :(得分:0)
我建议您使用自定义布局并以编程方式对其进行充气。
使用您想要的输出创建一个由TextView
,EditText
和Button
组成的布局,然后对其进行充气。
View v=LayoutInflater.from(this).inflate(R.layout.customLayout,null);
并使用变量v
来引用TextView
,EditText
和Button
。
您的customLayout.xml
可能是这样的:
<LinearLayout android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<EditText
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
<Button
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
</LinearLayout>
在xml中将LinearLayout
置于垂直方向,然后在该布局中添加此视图以创建不同的视图。
for (int i = 0; i < 20; i++) {
View v = inflater.inflate(R.layout.customLayout, null);
ll.addView(v);
}
答案 2 :(得分:0)
Anusha尝试使用linearlayout
如果您的设计完全相同,您应该使用listview最佳方法。
LinearLayout linearLayout = (LinearLayout) findViewById(R.id.linearlayoutid);
final TextView[] myTextViews = new TextView[41];
final EditText[] editTextarray = new EditText[41];
for (int i = 0; i < 41; i++) {
// create a new textview
rowTextView = new TextView(this);
myTextViews[i] = rowTextView;
linearLayout.addView(myTextViews[i]);
final EditText editText = new EditText(this);
editText.setText("edit");
editText.setCursorVisible(true);
editTextarray[i] = editText;
linearLayout.addView(editTextarray[i]);
}
答案 3 :(得分:0)
我建议您为此要求实施ListView -
根据您当前的方法,您将最终为每个按钮设置多个onClicklistener - 如果该按钮将选择与textview / edittext关联的输入数据 - 您将最终编写许多数组调用和填充< / p>
Listview - 点击你可以触发一个onClickListener的区别
的任何项目PS:错误的设计重复textview / edittext下方的按钮如果按钮预期执行相同/类似功能说保存 - 只需要textview / edittext的列表视图 - 工具栏上或表单下方的常用按钮操作。