从公共XML文件加载视图

时间:2011-03-19 19:46:47

标签: android android-layout

我想要一个commons.xml布局文件,存储各种子视图,并能够通过代码扩展单个视图。

目标是能够通过findViewById()从xml文件加载按钮,标签等,并能够通过MergeAdapter.addView(View v)将它们添加到MergeAdapter。

//the following works
TextView text = new TextView(this);     
text.setText("hellooo");
mMergeAdapter.addView(text);

//but how to instantiate the object from the xml definition ?
TextView text =  **???**  //R.layout.commons.xml, mytextviewid  
text.setText("sigh :(");
mMergeAdapter.addView(text);

Commons.xml可能很简单:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
>
    <TextView android:id="@+id/mytextviewid" 
        android:layout_height="fill_parent" 
        android:layout_width="fill_parent"      
    />
    <Button android:id="@+id/mybutton" 
        android:layout_height="fill_parent" 
        android:layout_width="fill_parent"      
    />
</LinearLayout>

我没有特殊的性能要求。

1 个答案:

答案 0 :(得分:0)

您可以使用XMLPullParser来解析资源XML并获取所需的节点,然后使用XML.asAttributeSetthis View constructor通过XML配置手动创建View的新实例< / p>