Android 总是从膨胀的布局中获得相同的值

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

我在一个按钮点击中膨胀一个布局,每次点击按钮,这个布局都有EditText,我想把所有的值都放到hashmap中,但每次我把第一个值放到hashmap中,循环都会运行大量的布局膨胀次数,但每次只从第一个布局中获取值,我的代码如下,请帮我完成它, 代码

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-请查看我编辑的代码。