0
我必須將包含3個editTexts的linearLayout充氣到另一個linearLayout。我可以使用linearLayout []數組來做到這一點。我可以通過數組定義多個LinearLayout嗎?
public class PurchaseVoucher extends Activity implements OnFocusChangeListener, OnClickListener{
LinearLayout[] row=new LinearLayout[30];
AutoCompleteTextView[] items=new AutoCompleteTextView[30];
EditText[] quants=new EditText[30];
EditText[] rates=new EditText[30];
TextView[] totals=new TextView[30];
Boolean[] flag=new Boolean[30];
EditText date;
Button save;
LinearLayout container;
int no;
int id;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
setContentView(R.layout.sale_purchase_vouch);
no=0;
for(int i=0;i<30;i++)
flag[i]=true;
save=(Button)findViewById(R.id.Save);
save.setText("Confirm Purchase");
LayoutInflater l=getLayoutInflater();
container=(LinearLayout)findViewById(R.id.container);
row[no]=(LinearLayout)l.inflate(R.layout.row, container);
items[no]=(AutoCompleteTextView)row[no].findViewById(R.id.item);
quants[no]=(EditText)row[no].findViewById(R.id.quant);
rates[no]=(EditText)row[no].findViewById(R.id.rate);
save.setOnClickListener(this);
quants[no].setOnFocusChangeListener(this);
flag[no]=false;
}
@Override
public void onFocusChange(View arg0, boolean arg1) {
// TODO Auto-generated method stub
if(flag[no+1]==true){
if(arg1==false){
no++;
LayoutInflater g=getLayoutInflater();
row[no]=(LinearLayout)g.inflate(R.layout.row, container);
items[no]=(AutoCompleteTextView)row[no].findViewById(R.id.item);
quants[no]=(EditText)row[no].findViewById(R.id.quant);
rates[no]=(EditText)row[no].findViewById(R.id.rate);
Log.d("detection", "Row is "+ no+ arg0.getId());
}
}
}
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Log.d("quant", quants[0].getText().toString()+" "+quants[0].getText().toString());
Log.d("item", items[1].getText().toString()+" "+quants[1].getText().toString());
Log.d("rate", rates[2].getText().toString()+" "+quants[2].getText().toString());
}
}
在按下該按鈕以獲得在logcat的結果,所有的值都等於第一3個editTexts即等於項[0],寬客[0]和率[ 0]。其次,onFocusChangeListener()僅適用於預定義的第一個linearLayout中的editText。
@codeMagic,不,'不'爲'0'。 'int'被自動實例化爲0.如果它是'Integer'類型,那麼它將是'null'。 – Phil
我拿出了一些不必要的代碼,使它看起來很乾淨。但我照顧'不'。它會在需要時自動增加。當我需要從editTexts獲取值時,問題出現了。這就是我問這個問題的原因。我認爲我的方法有一些問題 – kayveesin
我現在應該編輯我的問題來問現實問題 – kayveesin