作者alderis (alderis)
看板AndroidDev
标题Re: [问题] 动态产生EditText并取得值的方法?
时间Sun Sep 18 11:49:26 2011
最後使用的方法是
把前文中的child从 View[]改为View
在inflate时把root viewgroup改为null
即 View child = getLayoutInflater().inflate(R.layout.price,null);
再 item.addView(child);
但Title与Price维持使用array
即可抓出不同行的值
但维持使用xml去动态新增画面。
※ 引述《alderis (alderis)》之铭言:
: 大家好,我在程式中设立了一个按钮
: 每按一下希望会自动产生一列的EditText
: 其中有一个LinearLayout与2个EditText分别叫做
: R.id.Title
: R.id.Price
: 我先将上述的元件建立在price.xml里面
: 再用inflater去产生它
: LL_StockCreate_main是在页面中原有的LinearLayout
: 希望在这个Layout中动态产生一列EditText
: ===============================================================
: 自动产生的button listener中程式片段如下
: LinearLayout item = (LinearLayout) findViewById(R.id.LL_StockCreate_main);
: child[PriceNumber] = getLayoutInflater().inflate(R.layout.price,item);
: et_Title[PriceNumber] = (EditText)child[PriceNumber].findViewById(R.id.Title);
: et_Price[PriceNumber] = (EditText)child[PriceNumber].findViewById(R.id.Price);
: PriceNumber++;
: 以上的程式按下按钮後会自动产生一行行我要的东西没错
: 可是当我要把EditText中的字串给读出来的时候
: 只会读到第一次建立的那一行EditText。
: 读出的程式码如下
: for(int i=0;i<PriceNumber;i++){
: title = et_Title[i].getText().toString();
: price = et_Price[i].getText().toString();
: }
: 我查了一下,好像我每个et_Title[i]建立起来的元件id都一样
: 要如何做才能抓到所产生的不同行的内容呢?
: 谢谢
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 111.240.212.2
1F:推 LaPass:感谢分享解决办法到板上 我应该快用到这个了 m(_ _)m 09/18 16:37
2F:→ alderis:再追加分享~如果要动态删除的话,另设一个View[]去接刚 09/18 17:20
3F:→ alderis:刚inflate出来的view,再用setId的方法自设id 09/18 17:22
4F:→ alderis:之後要removeview时才抓的到新inflate的view 09/18 17:22
5F:→ alderis:搞这个搞了一天半才搞定它…分享给大家 09/18 17:23