1

在我的項目之一,我想創建一個像給圖像Android的佈局 - 添加動態的TextView和EditText上

Dynamic EditText and TextView

佈局在圖像假設紅箱子是Textviews和藍色的盒是EditText上 數的行是未知的。這取決於Web服務響應。我怎樣才能做到這一點。

+0

你有沒有看使用gridview的呢? http://developer.android.com/guide/topics/ui/layout/gridview.html – Byron

+0

我的問題是,我將通過代碼動態添加組件。如果是通過XML我可以做到。如果您可以告訴我如何動態添加網格視圖中的元素,那麼這對我會有所幫助 –

+1

Gridview是動態的,即適配器的用途。請完整閱讀該頁面的內容。 – Byron

回答

0

你可以嘗試像這樣的代碼。如

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 

    <LinearLayout 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_weight="1" 
     android:orientation="vertical" > 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="3" > 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:gravity="center" 
       android:text="First Row" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="2" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:text="First Row" /> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:text="First Row" /> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:text="First Row" /> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:text="First Row" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="2" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:text="First Row" /> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:text="First Row" /> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:text="First Row" /> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:text="First Row" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="2" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:text="First Row" /> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:text="First Row" /> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:text="First Row" /> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:text="First Row" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="2" 
      android:orientation="horizontal" > 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:text="First Row" /> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:text="First Row" /> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:text="First Row" /> 

      <TextView 
       android:id="@+id/textView1" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:text="First Row" /> 
     </LinearLayout> 

     <LinearLayout 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:layout_weight="3" 
      android:orientation="horizontal" > 

      <Button 
       android:id="@+id/textView1" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:text="Ok" /> 

      <Button 
       android:id="@+id/textView1" 
       android:layout_width="0dp" 
       android:layout_height="wrap_content" 
       android:layout_weight="1" 
       android:gravity="center" 
       android:text="Cancel" /> 
     </LinearLayout> 
    </LinearLayout> 

</LinearLayout> 

我希望這會對你有所幫助。祝你好運!

0

嘗試在滾動視圖內的線性佈局中動態添加視圖。

試試這個代碼。我知道這不是確切的解決方案。但是,希望它給你一些想法。

public class MainActivity extends Activity { 

    ScrollView scrollview; 
    LinearLayout linearLayout; 
    LinearLayout.LayoutParams layoutParams; 
    static int i; 
    /** Called when the activity is first created. */ 
    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     scrollview = (ScrollView)findViewById(R.id.scrollview); 
     linearLayout = (LinearLayout)findViewById(R.id.linearlayout); 
     Button button = (Button)findViewById(R.id.button); 
     layoutParams = new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 

     button.setOnClickListener(new OnClickListener(){ 

      public void onClick(View v) { 
       TextView view = new TextView(MainActivity.this);    
       view.setText(++i+" view"); 
       linearLayout.addView(view, layoutParams); 
      } 

     }); 

}} 
0
first inf_child.xml layout: 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    android:orientation="vertical" > 
<LinearLayout 
     android:id="@+id/inf_dynamicLl" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 
    </LinearLayout> 
    <LinearLayout 
     android:id="@+id/btnContainer" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal" > 

     <Button 
     android:layout_height="wrap_content" 
     android:layout_width="0dp" 
     android:layout_weight="0.25" 
     android:text="OK"/> 
    <Button 
     android:layout_height="wrap_content" 
     android:layout_width="0dp" 
     android:layout_weight="0.25" 
     android:text="Cancel"/> 

</LinearLayout> 
</LinearLayout> 


second inf_dynamic_view.xml layout which will generate row dynamically: 

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:id="@+id/inner_linear_layout" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content" 
    android:orientation="horizontal" 
    > 

    <TextView 
     android:id="@+id/firstText" 
     android:layout_width="0dp" 
     android:layout_weight="0.25" 
     android:layout_height="wrap_content" 
     /> 

    <TextView 
     android:id="@+id/secontText" 
     android:layout_width="0dp" 
    android:layout_weight="0.25" 
     android:layout_height="wrap_content" 
     /> 
<TextView 
     android:id="@+id/ThirdText" 
     android:layout_width="0dp" 
     android:layout_height="wrap_content" 
     android:layout_weight="0.25" /> 
<EditText 
     android:id="@+id/editText" 
     android:layout_height="wrap_content" 
     android:layout_width="0dp" 
     android:layout_weight="0.25" 
     /> 

</LinearLayout> 



if (convertView == null) { 

      LayoutInflater infalInflater = (LayoutInflater) mContext.getSystemService(mContext.LAYOUT_INFLATER_SERVICE); 
      convertView = infalInflater.inflate(R.layout.inf_child, null); 

     } 

     LinearLayout dynamicLl = (LinearLayout) convertView.findViewById(R.id.inf_dynamicLl); 

     for (int rowCounter = 0; rowCounter < parentData.get(groupPosition).childData.get(childPosition).price.size(); rowCounter++) 

       createRow(dynamicLl, parentData.get(groupPosition).childData.get(childPosition).price.get(rowCounter), groupPosition); 


=> create row dynamically 

private void createRow(LinearLayout lView, String price, int childPosition) { 
     LayoutInflater vi = (LayoutInflater) mContext.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     View l = vi.inflate(R.layout.inf_dynamic_view, null); 

     final TextView tvFirst, tvSecond,tvThird; 
     final EditText edt1; 



     lView.addView(l); 
     lView.refreshDrawableState(); 
    }