2014-09-03 55 views
2

我希望XML为TextViewsEditTexts创建动态。一些博客建议有一些第三方库可以做到这一点,但我无法找到一个。我基本上创建TextViews & EditTexts动态在我的密码button点击。为动态创建的元素创建XML

代码:

 LinearLayout linearLayout1 = (LinearLayout) findViewById(R.id.linearLayout1); 
     for (int x = 0; x < 1; x++) { 
      Display display = ((WindowManager) getApplicationContext() 
        .getSystemService(Context.WINDOW_SERVICE)) 
        .getDefaultDisplay(); 
      int width = display.getWidth()/3; 

      TextView et1 = new TextView(this); 
      et1.setBackgroundColor(color.transparent); 
      et1.setText("Untitled"); 
      et1.setGravity(Gravity.LEFT); 
      EditText et = new EditText(this); 
      et.setHint("Click to add"); 
      et.setInputType(InputType.TYPE_TEXT_FLAG_AUTO_CORRECT); 

      LayoutParams lp1 = new LayoutParams(LayoutParams.WRAP_CONTENT, 
        LayoutParams.WRAP_CONTENT); 
      LayoutParams lp2 = new LayoutParams(width, 
        LayoutParams.WRAP_CONTENT); 
      // lp1.addRule(RelativeLayout.BELOW, et1.getId()); 

      linearLayout1.addView(et1, lp2); 
      linearLayout1.addView(et, lp2); 

XML:

<ScrollView 
    android:id="@+id/scrollView1" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:layout_alignParentBottom="true" 
    android:layout_alignParentTop="true" 
    android:layout_toRightOf="@+id/addImage" > 

    <LinearLayout 
     android:id="@+id/linearLayout1" 
     android:layout_width="match_parent" 
     android:layout_height="wrap_content" 
     android:orientation="vertical" > 
    </LinearLayout> 
</ScrollView> 

<Button 
    android:id="@+id/addEdit" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:layout_alignParentLeft="true" 
    android:layout_alignParentTop="true" 
    android:layout_toLeftOf="@+id/scrollView1" 
    android:text="Edit" /> 

的问题是,我该如何实现XMLTextView & EditTextString价值?我是否给他们tagsids静态密码或者有没有其他方法?

解决方案:XmlSerializer是问题的答案。什么也没有。 :)

public static final void writeMapXml(Map val, String name, XmlSerializer out) 
    throws XmlPullParserException, java.io.IOException 
{ 
    if (val == null) { 
     out.startTag(null, "TextView"); 
     out.endTag(null, "TextView"); 
     return; 
    } 

    Set s = val.entrySet(); 
    Iterator i = s.iterator(); 

    out.startTag(null, "TextView"); 
    if (name != null) { 
     out.attribute(null, "name", "TextView"); 
    } 

    out.endTag(null, "TextView"); 
} 
+0

最新错误@MurdocN? – 2014-09-03 04:50:49

+0

没有'错误'。我想为动态生成的“TextView”和“EditText”生成“XML”。询问如何实现这一点。 – 2014-09-03 04:52:18

+0

你说过你想做但不知道为什么。你的方法可能是错误的。 – Simon 2014-09-03 04:56:40

回答

2

的XMLSerializer由Android提供的本身就足以使动态个XML。

+0

我已经知道了。看到问题。 – 2014-09-03 13:02:13

+0

好哥们! – 2014-09-03 13:04:35

+0

但我认为这是答案,至少应该回答,尽管很晚。 :) – 2014-09-03 13:06:42