我想動態添加行到線性佈局,其中每行將有2個按鈕和2個edittexts。我不確定組織這個最好的方法。我的想法是爲每一行創建一個類,其中包含按鈕和edittext,但FindViewByID不能這樣工作。另一個想法是爲每個對象包含一個佈局的實例,但我不確定如何在沒有創建動作偵聽器的情況下高效地訪問佈局中的按鈕的最佳方式,如果我有10個對象,20個按鈕和20個edittext。是否有可能使用包含的佈局數組並根據需要添加它們如果我這樣做?Android:動態創建一個對象列表,每個對象都有自己的按鈕和EditTexts
2
A
回答
1
我只是爲該行創建一個佈局文件,使用LayoutInflator動態創建它,併爲每個創建偵聽器。我不認爲架空會殺死你。
如果它的行數不定,您應該在列表視圖中使用自定義ArrayAdaptor執行此操作,並回收您的佈局。
LayoutInflater inflater = LayoutInflater.from(this);
View yourRowView = inflator.inflate(R.layout.yourrowfile, null);
yourRowView.findByViewId(R.id.firstButton). setOnClickListener(//blah blah blah
((ViewGroup)findByViewId(R.id.yourParentContainer)).addView(yourRowView);
LayoutInflator從xml佈局定義中膨脹佈局。通常在一個活動中,你只需將R.layout [無論]傳給setContentView,但如果你想動態地創建一個視圖並添加它,你可以使用上面的代碼(或類似的代碼)。請注意,要填充框並觸發按鈕,您需要在視圖上調用findByViewId。我經常犯這個錯誤的方法來對這個活動偶然發生(習慣的力量)。
要使用自定義用戶界面進行列表視圖,其概念上相似,但管道稍微複雜一些,但尚未廣泛描述。這裏有一個例子:
http://www.softwarepassion.com/android-series-custom-listview-items-and-adapters/
相關問題
- 1. 每個JSpinner對象是否都有自己的Model對象?
- 2. Tkinter從列表創建按鈕,每個按鈕都有其自己的功能
- 3. 如何創建一個容器,每個對象都有一個對象?
- 4. Python對象列表,每個對象都有自己的數組字典。附加到一個附加到所有
- 5. 自己創建一個ResultSet對象
- 6. 如何創建一個父對象列表,其中每個父對象可以有一個子對象列表?
- 7. 多個UIAlertView;每個都有自己的按鈕和動作
- 8. 從一個匿名對象動態創建一個對象
- 9. 試圖爲每個對象實例創建一個按鈕
- 10. C#WPF爲列表中的每個對象動態創建一個GUI元素
- 11. 從創建對象屬性動態單選按鈕列表
- 12. Android:創建多列按鈕,每個按鈕都有獨立的滾動視圖
- 13. 從動態表創建對象列表
- 14. 每次創建一個新對象或保留一個對象
- 15. 如何創建一個列表與動態對象類型
- 16. 動態創建對象並單擊其中一個對象
- 17. 創建一個Unity對象列表
- 18. 創建從一個對象和陣列
- 19. 從動態列表創建JSON對象
- 20. 用對象和它自己的值創建列表?
- 21. 創建一個Jquery對象的對象
- 22. 我應該每次創建一個新對象還是創建一個對象?
- 23. 我應該將PDO對象傳遞給每個對象,還是爲每個對象創建一個新對象?
- 24. 如何創建一個對象,每個對象在每次使用時都會增加一個數字?
- 25. 從執行jscript列表按鈕創建多個相關對象
- 26. 從另一個List對象創建對象列表LINQ Lambda
- 27. 自動創建多個對象和名稱從一個集列表
- 28. 從另一個對象創建對象
- 29. 從動態對象創建對象
- 30. 在按鈕按下時創建一個對象的新實例
呃好吧,是有辦法啞下來一點點。我剛剛開始。我應該創建按鈕和editTexts的佈局,然後使用充氣器來添加它們,對嗎?我將如何使用充氣器訪問各個佈局? – ProdigousRanger
我試過你的代碼,而.from語法不正確。我正在運行2.3.3,並且從我在互聯網上發現的版本與之前的版本不同。你知道如何在新平臺上做到這一點嗎? – ProdigousRanger
如果這不起作用,我會感到震驚。取決於你從哪裏調用它。郵政編碼?如果你在一個匿名函數中,你需要在MyActivity.this這個Activity類的名字前加上'this'。 這種形式仍然可以在這裏:http://developer.android.com/reference/android/view/LayoutInflater.html#from(android.content.Context) 但是,你可以做到這一點很難,並使用它: LayoutInflater inflater =(LayoutInflater)context.getSystemService (Context.LAYOUT_INFLATER_SERVICE); 您將需要對「上下文」的引用,但是因爲這就是'this'指向的問題。 –