2015-04-20 38 views
0

我想開發一個Android應用程序,其中應用程序GUI的開始頁面將在主佈局中包含4個垂直佈局。現在,在每個佈局中,我想從應用程序動態添加按鈕/滑塊(而不是在源代碼中動態添加按鈕/滑塊)。這意味着,最初所有這4種佈局都是空白的,當用戶選擇其他佈局中的任何按鈕或滑塊時,要將其添加到這4種佈局中的任何一種中,按鈕或滑塊將添加到該佈局中。用戶將能夠在任何垂直佈局中添加最多10個視圖,視圖可以是按鈕,滑塊或自定義視圖。在Android中從應用程序添加視圖佈局

我嘗試:

首先我想主要佈局啓動頁面下創建4個垂直佈局,我得到了成功。

我也發現搜索後,它可能在Android的佈局動態添加視圖。

dynamically adding a view to activity layout

但大多數實施例中,動態地在機器人通過運行循環,實例化所需的視圖類添加意見,然後將其添加在主佈局。儘管通過這種方式,視圖是在佈局中動態添加的,但它通過修改源代碼來完成。

是否有可能以某種方式編寫源代碼,以便它可以直接從應用程序完成?因此,當用戶點擊在「layout 1」中添加一個滑塊時,會在佈局1中添加一個滑塊,然後當用戶點擊佈局1中的「添加按鈕」時,會添加一個按鈕在滑塊的末尾。用戶將能夠自定義按鈕或滑塊屬性。另外,如果用戶更改滑塊的值,應用程序將記住它的值。

現在,下一次,當應用程序將被打開時,這些視圖將會出現在佈局中,它們不會被刪除並且值將保持不變(例如,打勾的複選框將保持打勾),所以我想我也需要某種存儲或物業經理。

我的問題是,是否有可能在android中執行此操作(因爲我從來沒有在android中看到過這樣的應用程序),如果可能的話,我有什麼想法,我該如何實現它?

我完全陌生於android,所以我的知識是有限的,但我完成了android應用程序開發的基本教程,並且我在eclipse中有插件開發經驗。

非常感謝。我將非常感謝您的幫助。

+0

是的,這是可能的。我不清楚問題是什麼。在按鈕的onclick動作中,只需運行代碼即可將視圖添加到Android應用程序 –

回答

2

當然是可能的:

  • 每個佈局(如LinearLayoutRelativeLayout等)延伸ViewGroup -class,它提供了addView -method。
  • 要一個新的視圖(如滑塊)添加到您的佈局之一,只是它實例編程(通過新)在您的活動,並指定相應的LayoutParams
  • 要存儲狀態的用戶添加的內容,它是最容易使用的SharedPreferences - 在應用程序生命週期中保存數據的簡單鍵值存儲區
+0

感謝您的回答。我認爲它也將允許用戶,刪除按鈕/滑塊,對不對? – Tarek

+1

當然!檢查removeView() - 它的方法。 – funglejunk

1

是的。這個有可能。要動態創建View,您只需擴展View的類即可,或者只是說new Button(Context, AttributeSet);(不僅對於Button的每個View都有一個構造函數,它具有屬性集和上下文)。

使用Layout.addView()您可以將任何View添加到Layout

使用SharedPreferences,你可以指出什麼View屬於Layout

如果您決定延長View's課程,請確保不要做太多事情。我試過一次,它只是給了我一個OOM(OutOfMemory Error),因爲我有一個試圖同時做東西的東西。

相關問題