作者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