我必须显示一个表,当用户将焦点移动到上一行的最后一个editText时,会添加行。我的第一个方法是创建了2个XML文件,一个tableLayout和一个Tablerow。每当用户需要该行时,我都会用Java来扩充XML文件。除了我无法从我定义tableRow XML的EditText中获取用户输入的值之外,此方法一切正常。我该怎么办。我正在尝试的第二种方法的代码如下:
public class PurchaseVoucher extends Activity implements OnFocusChangeListener{
AutoCompleteTextView item[]=new AutoCompleteTextView[30];
EditText quant[]=new EditText[30];
EditText rate[]=new EditText[30];
TableLayout main;
TableRow row[]=new TableRow[30];
EditText date;
boolean done;
Button save;
int no=0;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.sale_purchase_vouch);
main=(TableLayout)findViewById(R.id.tableLayout);
date=(EditText)findViewById(R.id.Date);
date.setOnFocusChangeListener(this);
done=false;
save=(Button)findViewById(R.id.Save);
save.setText("Confirm Purchase");
}
@Override
public void onFocusChange(View arg0, boolean arg1) {
// TODO Auto-generated method stub
switch(arg0.getId()){
case R.id.Date:
if(arg1==false || done==false){
row[no]=(TableRow)LayoutInflater.from(this).inflate(R.layout.row, null);
item[no]=new AutoCompleteTextView(this);
quant[no]=new EditText(this);
rate[no]=new EditText(this);
LayoutParams params=new LayoutParams(LayoutParams.MATCH_PARENT, LayoutParams.MATCH_PARENT);
item[no].setHint("Enter item");
quant[no].setHint("Quantity");
rate[no].setHint("Rate");
row[no].addView(item[no], params);
row[no].addView(quant[no], params);
row[no].addView(rate[no], params);
main.addView(row[no]);
no++;
}
break;
}
}
}
通过这种方法,当用户从“日期”EditText失去焦点时,editTexts不会出现。
答案 0 :(得分:0)
这只是一个例子。
TableLayout tl = (TableLayout)findViewById(R.id.tl_frmXML);
TableRow tr ;
for(int i=0;i<=10;i++){
tr = new TableRow(this);
TextView tv = new TextView(this);
tv.setText("Test "+i);
tr.addView(tv);
tl.addView(tr);
}
答案 1 :(得分:0)
请参阅以下代码
for (int i = 0; i < Counter; i++) {
// Inflate your row "template" and fill out the fields.
TableRow row = (TableRow) LayoutInflater.from(mContext).inflate(R.layout.row_table_layout, null);
((ImageView) row.findViewById(R.id.img_drink_place)).setImageResource(R.drawable.img_guest_container);
((TextView) row.findViewById(R.id.attendee_name)).setText(bookingList.Attendees.get(i).ConsumerName);
((TextView) row.findViewById(R.id.tv_multiple)).setText("x");
((TextView) row.findViewById(R.id.tv_attendee_quantity)).setText("" + bookingList.Attendees.get(i).Quantity);
main.addView(row);
}