如何获取自定义视图的实例以便在循环中检索?

时间:2011-07-20 13:17:11

标签: android android-layout

我想根据我的数据显示行。例如,我将在循环中动态创建10行,实际上该行是自定义视图。所以我需要在主要活动中做到这一点。你能告诉我怎么做吗?

的example.xml

<TableLayout 
android:id="@+id/tableLayout1" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
xmlns:android="http://schemas.android.com/apk/res/android">
    <TableRow 
    android:id="@+id/tableRow1" 
    android:layout_width="fill_parent" 
    android:layout_height="wrap_content">
        <ImageView android:layout_height="wrap_content" android:src="@drawable/icon" android:id="@+id/imageView1" android:layout_width="wrap_content"></ImageView>

        <LinearLayout android:layout_height="wrap_content" android:id="@+id/linearLayout1" android:orientation="vertical" android:layout_width="fill_parent">
        <TextView android:layout_height="wrap_content" android:layout_width="fill_parent" android:textAppearance="?android:attr/textAppearanceMedium" android:id="@+id/textView1" android:text="titletitletitletitletitletitle"></TextView>
        <TextView android:text="DescriptionDescriptionDescription" android:id="@+id/textView2" android:layout_width="fill_parent" android:layout_height="wrap_content"></TextView>
        </LinearLayout>

    </TableRow>   
</TableLayout>`

CustomView.java

public class CustomView extends LinearLayout
{
    public CustomView(Context context, AttributeSet attrs)
    {
        super(context,attrs);       
        LayoutInflater layoutInflater = (LayoutInflater)context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        View view=layoutInflater.inflate(R.layout.example,this);
    }

    private void init(Context context){

    }
}

main.xml中

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

    <ScrollView android:id="@+id/scrollView1" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content">  
    </ScrollView>  

</LinearLayout>

1 个答案:

答案 0 :(得分:0)

您可以使用列表适配器和包装器,并且每次都会对自定义视图进行充气。实际上,在seocnd轮次中,为了使代码更加有效,您应该“重用”膨胀的视图,这样您就不会每次都膨胀。检查本教程的示例: http://mylifewithandroid.blogspot.com/2008/04/custom-widget-adapters.html