0

我正在开发一个 android 应用程序,该应用程序将从 xml 文件中获取数据并将其插入到列表视图中

但我想更改 UI,而不是在列表视图中垂直显示数据,我想在滚动视图中水平显示它们

我的问题是我是否有以下代码

<HorizontalScrollView 
        android:id="@+id/horizontalScrollView1"
        android:layout_width="wrap_content" 
        android:layout_height="wrap_content"
        android:scrollbars="none">

        <LinearLayout 
            android:id="@+id/linearLayout1"
            android:orientation="horizontal" 
            android:layout_height="wrap_content"
            android:layout_width="wrap_content" android:padding="2dp">

            <RelativeLayout
            android:layout_width="fill_parent"
            android:layout_height="fill_parent">
            <ImageView
                android:layout_width="wrap_content" 
                android:id="@+id/imageView11"
                android:layout_height="wrap_content" 
                android:src="@drawable/i1"/>
            <TextView
                android:id="@+id/TextOnImage11"
                android:layout_width="fill_parent"
                android:layout_height="wrap_content"
                android:text="Fantasia Reviews"
                android:layout_alignParentBottom="true" 
                android:paddingLeft="2dp" 
                android:background="@drawable/txt_bg" 
                android:textSize="10dp" 
                android:paddingTop="2dp" 
                android:textColor="#FFFFFF"
                android:textStyle="bold" 
                android:width="0dp" />
            </RelativeLayout>
      </LinearLayout>
    </HorizontalScrollView>

如何从 java 代码中动态添加更多图像和文本?

谢谢

4

1 回答 1

0

我认为您的意图是在您在代码示例中显示的 RelativeLayout 之后直接添加另一个具有自己的图像/文本对的 RelativeLayout?

在这种情况下,因为它不仅仅是添加一个视图,我会花时间创建一个代表您想要插入的“结构”的类。

例如,一个名为“TextImagePair”的类扩展了“RelativeLayout”

public class TextImagePair extends RelativeLayout {
    public ReportDetailRow(Context context){
        super(context);
    }

    public TextImagePair(Context context,AttributeSet attributeSet){
        super(context, attributeSet);
    }

    public TextImagePair(Context context,AttributeSet attributeSet, int i){
        super(context, attributeSet,i);
    }

    public TextImagePair(Context context, AttributeSet attributeSet, String text, int drawableResource) {
        super(context, attributeSet);

        // Inflate the layout
        LayoutInflater inflator = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        inflator.inflate(R.layout.lay_textimagepair, this);

        TextView tvText = (TextView)this.findViewById(R.id.layTextImagePair_textview);
        tvText.setText(text);

        ImageView imgView = (ImageView)this.findViewById(R.id.layTextImagePair_imageview);
        imgView.setDrawable(getResources().getDrawable(drawableResource));
    }
}

然后,您将拥有一个单独的 xml 布局文件(在我的代码中名为lay_textimagepair),其中仅包含文本和图像视图。

然后,您可以在运行时将其添加到您的视图中:

LinearLayout parent = (LinearLayout)findViewById(R.id.layParentView_liniearlayout);
TextImagePair tip = new TextImagePair(null,null,"Blah Blah Blah",R.drawable.something);
parent.addView(tip);

很抱歉,如果上面的代码中有任何错误,但我是在没有访问 Eclipse 的情况下编写的!

于 2012-08-12T15:43:24.830 回答