2013-10-25 146 views
0

我是新來的android開發,我很困擾的東西。Android動態用戶界面

我想先創建一個用戶界面,我有一個關於添加動態字段的問題。我已經在使用XML來設置我的界面,但我不知道如何繼續。

例如,用戶可以選擇1 2 3或4並根據選擇我希望對話框顯示EditText的數量。同樣的事情稍後會適用。表格會顯示標題上的文字瀏覽數量。

有沒有辦法通過使用一些XML和一些Java來做到這一點?因爲我相信只使用java,對不同的事物進行樣式設計將是一件痛苦的事情。

如果您需要更多信息,請讓我知道。

在此先感謝

+0

你可以把所有的在Java中的附件/循環邏輯,但只是膨脹現有的XML資源 - 所以不需要在Java層中的樣式等。 –

回答

0

你應該檢出View的visibility屬性。

如果您有一組固定的UI元素(例如5個按鈕),您可以將它們包含在佈局中,並在以後用setVisibility(View.Visible)顯示它們。然而,如果你有一個動態數量的元素(用戶可以從1到n個按鈕中選擇),那麼你將不得不在Java中實現它。您仍然可以使用XML佈局來完成部分工作,但大部分內容都需要手動完成。

0

我寫了一個示例代碼,看看它可以幫助你

public class ActivityMain extends Activity { 

    LinearLayout main; 
    private int id = 0; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.test); 

     main = (LinearLayout) findViewById(R.id.parent); 
     main.setOrientation(LinearLayout.VERTICAL); 

     final EditText editText = (EditText) findViewById(R.id.et_count); 

     Button button = (Button) findViewById(R.id.btn); 

     button.setOnClickListener(new OnClickListener() { 
      @Override 
      public void onClick(View arg0) { 
       final int count = Integer.parseInt(editText.getText() 
         .toString()); 
       addEditText(count); 
      } 
     }); 

    } 

    private void addEditText(int count) { 

     for (int i = 0; i < count; i++) { 

      LinearLayout editTextLayout = new LinearLayout(this); 
      editTextLayout.setOrientation(LinearLayout.VERTICAL); 
      main.addView(editTextLayout); 

      EditText editText1 = new EditText(this); 
      editText1.setId(id++); 
      editTextLayout.addView(editText1); 

     } 
    } 
} 

和佈局的test.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:id="@+id/parent" 
    android:padding="10dp" > 

    <EditText 
     android:id="@+id/et_count" 
     android:layout_width="100dp" 
     android:layout_height="wrap_content" /> 

    <Button 
     android:id="@+id/btn" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Submit" /> 

</LinearLayout> 

增添風采

editTextLayout.setTextAppearance(getApplicationContext(), R.style.boldText); 
+0

謝謝你們。 Brontok,我瞭解你的代碼。我仍然無法理解的是在我們使用ur方法添加所有這些edittext之後,我們如何使用預定義的XML對它們進行樣式化? – user2919616

+0

檢查更新的答案以在運行時添加樣式。 –