사용자가 포커스를 이전 행의 마지막 editText로 이동할 때 행이 추가되는 테이블을 표시해야합니다. 첫 번째 방법은 2 개의 XML 파일 인 tableLayout과 하나의 Tablerow를 만들었다는 것입니다. 사용자가 행을 필요로 할 때마다 Java에서 XML 파일을 부 풀리게됩니다. tableRow XML을 정의한 EditText에서 사용자가 입력 한 값을 선택할 수 없다는 점을 제외하고는이 방법으로 모두 잘 작동합니다. 어떻게해야합니까? 내가 노력하고 두 번째 방법에 대한 코드는 다음과 같습니다 다음 editTexts는 사용자로 표시되지 않는이 방법으로동적으로 테이블을 행에 추가하는 방법은?
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;
}
}
}
은 '날짜'글고 포커스를 잃게됩니다.