我正在开发一个Android应用程序,它将从xml文件中获取数据并将其插入listview
但我想更改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代码中动态添加更多图像和文本?
谢谢
答案 0 :(得分:0)
我认为您的意图是在您在代码示例中显示的RelativeLayout之后直接添加另一个RelativeLayout及其自己的图像/文本对?
在这种情况下,因为它不仅仅是添加一个视图,我会花时间创建一个代表你想要插入的“结构”的类。
e.g。一个名为“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!