Re: [問題] 動態產生EditText並取得值的方法?

看板AndroidDev作者 (alderis)時間13年前 (2011/09/18 11:49), 編輯推噓1(104)
留言5則, 2人參與, 最新討論串2/2 (看更多)
最後使用的方法是 把前文中的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

09/18 16:37, , 1F
感謝分享解決辦法到板上 我應該快用到這個了 m(_ _)m
09/18 16:37, 1F

09/18 17:20, , 2F
再追加分享~如果要動態刪除的話,另設一個View[]去接剛
09/18 17:20, 2F

09/18 17:22, , 3F
剛inflate出來的view,再用setId的方法自設id
09/18 17:22, 3F

09/18 17:22, , 4F
之後要removeview時才抓的到新inflate的view
09/18 17:22, 4F

09/18 17:23, , 5F
搞這個搞了一天半才搞定它…分享給大家
09/18 17:23, 5F
文章代碼(AID): #1ETMf99H (AndroidDev)
文章代碼(AID): #1ETMf99H (AndroidDev)