Android table 布局
Android table layout
在我的应用程序中,我在代码中设置每个 table 行。
行设置代码
final TableRow row = new TableRow(context);
row.setBackgroundResource(R.drawable.layer_nw);
row.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, 150));
row.setMinimumHeight(100);
//tr.addView(view);
String[] colText = {"" + outlet_name, "" + outlet_qty, "" + outlet_price, "" + outlet_tot};
for (String text : colText) {
TextView tv = new TextView(this);
//EditText ev=new EditText(this);
tv.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,150));
tv.setGravity(Gravity.CENTER);
tv.setTextSize(14);
// tv.setTextColor(Integer.parseInt("#D3D3D3"));
tv.setText(text);
row.addView(tv);
}
tableLayout.addView(row);
在这一行中,我想要第二个单元格,即 'outlet_qty' 作为编辑文本,所有其他作为 'colText' 数组变量的 textview.each 从 Sqlite 获取其值。
有什么办法可以做到这一点?请帮忙
试试这个。在迭代列的 for 循环中,我们检查列是否为 outlet_qty。如果我们匹配 outlet_qty 列,我们将添加一个编辑文本。对于所有其他内容,我们添加文本视图。
final TableRow row = new TableRow(context);
row.setBackgroundResource(R.drawable.layer_nw);
row.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, 150));
row.setMinimumHeight(100);
//tr.addView(view);
String[] colText = {"" + outlet_name, "" + outlet_qty, "" + outlet_price, "" + outlet_tot};
// iterate over colunms
for (String text : colText) {
// add edit text for outlet_qty column
if(text.equals(outlet_qty))
{
EditText editText = new EditText(this);
// do stuff with the edit text like prefilling data etc
row.addView(tv);
}
// for all others we add text views
else
{
TextView tv = new TextView(this);
//EditText ev=new EditText(this);
tv.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,150));
tv.setGravity(Gravity.CENTER);
tv.setTextSize(14);
// tv.setTextColor(Integer.parseInt("#D3D3D3"));
tv.setText(text);
row.addView(tv);
}
}
tableLayout.addView(row);
这都是为了管理特定列号的TextView和EditText。您可以像管理从 sqlite 中输入的数据一样管理数据。
final TableRow row = new TableRow(context);
row.setBackgroundResource(R.drawable.layer_nw);
row.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, 150));
row.setMinimumHeight(100);
//tr.addView(view);
String[] colText = {"" + outlet_name, "" + outlet_qty, "" + outlet_price, "" + outlet_tot};
for (int i = 0; i < colText.length; i++) {
EditText ev = new EditText(this);
TextView tv = new TextView(this);
if (i == 1) {//For outlet_qty
ev.setId(i);
ev.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, 150));
ev.setGravity(Gravity.CENTER);
ev.setTextSize(14);
// ev.setTextColor(Integer.parseInt("#D3D3D3"));
ev.setText(colText[i]);
ev.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.length() > 0) {
((TextView) row.findViewById(Integer.valueOf(3))).setText(s.toString().trim());
} else {
((TextView) row.findViewById(Integer.valueOf(3))).setText("");
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
row.addView(ev);
} else {
tv.setId(i);
tv.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, 150));
tv.setGravity(Gravity.CENTER);
tv.setTextSize(14);
// tv.setTextColor(Integer.parseInt("#D3D3D3"));
tv.setText(colText[i]);
row.addView(tv);
}
}
tableLayout.addView(row);
在我的应用程序中,我在代码中设置每个 table 行。
行设置代码
final TableRow row = new TableRow(context);
row.setBackgroundResource(R.drawable.layer_nw);
row.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, 150));
row.setMinimumHeight(100);
//tr.addView(view);
String[] colText = {"" + outlet_name, "" + outlet_qty, "" + outlet_price, "" + outlet_tot};
for (String text : colText) {
TextView tv = new TextView(this);
//EditText ev=new EditText(this);
tv.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,150));
tv.setGravity(Gravity.CENTER);
tv.setTextSize(14);
// tv.setTextColor(Integer.parseInt("#D3D3D3"));
tv.setText(text);
row.addView(tv);
}
tableLayout.addView(row);
在这一行中,我想要第二个单元格,即 'outlet_qty' 作为编辑文本,所有其他作为 'colText' 数组变量的 textview.each 从 Sqlite 获取其值。 有什么办法可以做到这一点?请帮忙
试试这个。在迭代列的 for 循环中,我们检查列是否为 outlet_qty。如果我们匹配 outlet_qty 列,我们将添加一个编辑文本。对于所有其他内容,我们添加文本视图。
final TableRow row = new TableRow(context);
row.setBackgroundResource(R.drawable.layer_nw);
row.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, 150));
row.setMinimumHeight(100);
//tr.addView(view);
String[] colText = {"" + outlet_name, "" + outlet_qty, "" + outlet_price, "" + outlet_tot};
// iterate over colunms
for (String text : colText) {
// add edit text for outlet_qty column
if(text.equals(outlet_qty))
{
EditText editText = new EditText(this);
// do stuff with the edit text like prefilling data etc
row.addView(tv);
}
// for all others we add text views
else
{
TextView tv = new TextView(this);
//EditText ev=new EditText(this);
tv.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT,150));
tv.setGravity(Gravity.CENTER);
tv.setTextSize(14);
// tv.setTextColor(Integer.parseInt("#D3D3D3"));
tv.setText(text);
row.addView(tv);
}
}
tableLayout.addView(row);
这都是为了管理特定列号的TextView和EditText。您可以像管理从 sqlite 中输入的数据一样管理数据。
final TableRow row = new TableRow(context);
row.setBackgroundResource(R.drawable.layer_nw);
row.setLayoutParams(new TableLayout.LayoutParams(TableLayout.LayoutParams.MATCH_PARENT, 150));
row.setMinimumHeight(100);
//tr.addView(view);
String[] colText = {"" + outlet_name, "" + outlet_qty, "" + outlet_price, "" + outlet_tot};
for (int i = 0; i < colText.length; i++) {
EditText ev = new EditText(this);
TextView tv = new TextView(this);
if (i == 1) {//For outlet_qty
ev.setId(i);
ev.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, 150));
ev.setGravity(Gravity.CENTER);
ev.setTextSize(14);
// ev.setTextColor(Integer.parseInt("#D3D3D3"));
ev.setText(colText[i]);
ev.addTextChangedListener(new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
if (s.length() > 0) {
((TextView) row.findViewById(Integer.valueOf(3))).setText(s.toString().trim());
} else {
((TextView) row.findViewById(Integer.valueOf(3))).setText("");
}
}
@Override
public void afterTextChanged(Editable s) {
}
});
row.addView(ev);
} else {
tv.setId(i);
tv.setLayoutParams(new TableRow.LayoutParams(TableRow.LayoutParams.WRAP_CONTENT, 150));
tv.setGravity(Gravity.CENTER);
tv.setTextSize(14);
// tv.setTextColor(Integer.parseInt("#D3D3D3"));
tv.setText(colText[i]);
row.addView(tv);
}
}
tableLayout.addView(row);