Android 总是从膨胀的布局中获得相同的值
我在一个按钮点击中膨胀一个布局,每次点击按钮,这个布局都有EditText,我想把所有的值都放到hashmap中,但每次我把第一个值放到hashmap中,循环都会运行大量的布局膨胀次数,但每次只从第一个布局中获取值,我的代码如下,请帮我完成它, 代码Android 总是从膨胀的布局中获得相同的值,android,android-layout,android-inflate,Android,Android Layout,Android Inflate,我在一个按钮点击中膨胀一个布局,每次点击按钮,这个布局都有EditText,我想把所有的值都放到hashmap中,但每次我把第一个值放到hashmap中,循环都会运行大量的布局膨胀次数,但每次只从第一个布局中获取值,我的代码如下,请帮我完成它, 代码 ArrayList<ViewGroup> listOfViewGroups; LinearLayout listitems; onCreate(){ listitems = (LinearLayout) findViewById(R.i
ArrayList<ViewGroup> listOfViewGroups;
LinearLayout listitems;
onCreate(){
listitems = (LinearLayout) findViewById(R.id.ll_list);
listOfViewGroups = new ArrayList<ViewGroup>();
et_item_id = (EditText) addView.findViewById(R.id.et_item_id);
et_desc = (EditText) addView.findViewById(R.id.et_desc);
et_qty = (EditText) addView.findViewById(R.id.et_qty);
et_unit_prize = (EditText) addView.findViewById(R.id.et_unit_prize);
et_amt = (EditText) addView.findViewById(R.id.et_amt);
buttonRemove.setVisibility(View.GONE);
et_qty.addTextChangedListener(textwatcher);
et_unit_prize.addTextChangedListener(textwatcher);
listitems.addView(addView);
listOfViewGroups.add(listitems);
add.setOnClickListener(new OnClickListener)){
@Override
onClick(){
LayoutInflater layoutInflater = (LayoutInflater) getBaseContext().getSystemService(Context.LAYOUT_INFLATER_SERVICE);
final View addView = layoutInflater.inflate(R.layout.raw_descs, null);
ImageView buttonRemove = (ImageView) addView.findViewById(R.id.iv_del);
et_item_id = (EditText) addView.findViewById(R.id.et_item_id);
et_desc = (EditText) addView.findViewById(R.id.et_desc);
et_qty = (EditText) addView.findViewById(R.id.et_qty);
et_unit_prize = (EditText) addView.findViewById(R.id.et_unit_prize);
et_amt = (EditText) addView.findViewById(R.id.et_amt);
et_qty.addTextChangedListener(textwatcher);
et_unit_prize.addTextChangedListener(textwatcher);
listitems.addView(addView);
listOfViewGroups.add(listitems);
}
}
public String urlgenerater() {
String paramPass = null;
// get each ViewGroup
for (int i = 0; i < listOfViewGroups.size(); i++) {
ViewGroup vg = listOfViewGroups.get(i);
// get each EditText containing the amount
EditText item_id = (EditText) vg.findViewById(R.id.et_item_id);
EditText desc = (EditText) vg.findViewById(R.id.et_desc);
EditText unitprice = (EditText) vg.findViewById(R.id.et_unit_prize);
EditText qty = (EditText) vg.findViewById(R.id.et_qty);
// get the string entered in the EditText
// change to a double
System.out.println(":::::::::::::::::::::::::::::ITEM _ID:::::::::::::::::::::;;" + item_id.getText().toString());
System.out.println("::::::::::::::::::::::::::::DESCRIPTION:::::::::::::::::::;;" + desc.getText().toString());
System.out.println(":::::::::::::::::::::::::::::UNIT PRICE::::::::::::::::::::;;" + unitprice.getText().toString());
System.out.println("::::::::::::::::::::::::::::QUANTITY:::::::::::::::::::::;;" + qty.getText().toString());
descMap = new HashMap<String, String>();
descMap.put("item", item_id.getText().toString());
descMap.put("up", unitprice.getText().toString());
descMap.put("desc", desc.getText().toString());
descMap.put("qty", qty.getText().toString());
System.out.println("::::::::::::::::::MAP VALUES::::::::::" + descMap);
descList.add(descMap);
paramPass = paramPass + "&item_name[" + i + "]=" + item_id.getText().toString() + "&qty[" + i + "]=" + qty.getText().toString() + "&desc[" + i + "]=" + desc.getText().toString()
+ "&unit_price[" + i + "]=" + unitprice.getText().toString();
}
return paramPass;
}
}
ArrayList视图组列表;
线性布局列表项;
onCreate(){
listitems=(LinearLayout)findViewById(R.id.ll_列表);
listOfViewGroups=new ArrayList();
et_item_id=(EditText)addView.findViewById(R.id.et_item_id);
et_desc=(EditText)addView.findviewbyd(R.id.et_desc);
et_数量=(EditText)addView.findViewById(R.id.et_数量);
et_unit_prize=(EditText)addView.findViewById(R.id.et_unit_prize);
et_amt=(EditText)addView.findviewbyd(R.id.et_amt);
按钮Remove.setVisibility(View.GONE);
et_数量addTextChangedListener(textwatcher);
et_单位奖。添加TextChangedListener(textwatcher);
listitems.addView(addView);
添加(列表项);
add.setOnClickListener(新的OnClickListener)){
@凌驾
onClick(){
LayoutInflater LayoutInflater=(LayoutInflater)getBaseContext().getSystemService(Context.LAYOUT\u INFLATER\u SERVICE);
最终视图addView=layoutInflater.flate(R.layout.raw_descs,null);
ImageView按钮删除=(ImageView)addView.findViewById(R.id.iv_del);
et_item_id=(EditText)addView.findViewById(R.id.et_item_id);
et_desc=(EditText)addView.findviewbyd(R.id.et_desc);
et_数量=(EditText)addView.findViewById(R.id.et_数量);
et_unit_prize=(EditText)addView.findViewById(R.id.et_unit_prize);
et_amt=(EditText)addView.findviewbyd(R.id.et_amt);
et_数量addTextChangedListener(textwatcher);
et_单位奖。添加TextChangedListener(textwatcher);
listitems.addView(addView);
添加(列表项);
}
}
公共字符串生成器(){
字符串paramPass=null;
//获取每个视图组
对于(int i=0;i
在将视图组添加到HashMap的位置张贴代码您可能已将同一视图添加到listOfViewGroups。linearlayout是否具有垂直方向?您可能需要将其更改为“垂直”以查看所有添加的视图。是否可以尝试改用listview和基本适配器?这将简化您的工作,并为您提供更清晰的代码以供访问values@vipulmittal-请查看我编辑的代码。